函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\bfq-iosched.c Create Date:2022-07-27 19:32:55
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:bfq_get_queue

函数原型:static struct bfq_queue *bfq_get_queue(struct bfq_data *bfqd, struct bio *bio, bool is_sync, struct bfq_io_cq *bic)

返回类型:struct bfq_queue

参数:

类型参数名称
struct bfq_data *bfqd
struct bio *bio
boolis_sync
struct bfq_io_cq *bic
5130  ioprio等于IOPRIO_PRIO_DATA( per (request_queue, blkcg) ioprio )
5131  ioprio_class等于IOPRIO_PRIO_CLASS( per (request_queue, blkcg) ioprio )
5132  struct bfq_queue * * async_bfqq = NULL
5136  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
5138  bfqg等于bfq_find_set_group(bfqd, __bio_blkcg - internal, inconsistent version to get blkcg* DO NOT USE.* This function is inconsistent and consequently is dangerous to use. The* first part of the function returns a blkcg where a reference is owned by the* bio)
5139  如果非bfqg
5140  bfqq等于 fallback dummy bfqq for extreme OOM conditions
5141  转到:out
5144  如果非is_sync
5145  async_bfqq等于bfq_async_queue_prio(bfqd, bfqg, ioprio_class, ioprio)
5147  bfqq等于async_bfqq
5148  如果bfqq则转到:out
5152  bfqq等于在指定节点上分配一个对象
5156  如果bfqq
5157  bfq_init_bfqq(bfqd, bfqq, bic, pid, is_sync)
5159  bfq_init_entity( & ity representing this queue in the scheduler , bfqg)
5160  bfq_log_bfqq(bfqd, bfqq, "allocated")
5161  否则
5162  bfqq等于 fallback dummy bfqq for extreme OOM conditions
5163  bfq_log_bfqq(bfqd, bfqq, "using oom bfqq")
5164  转到:out
5171  如果async_bfqq
5178  ce counter 自加
5179  bfq_log_bfqq(bfqd, bfqq, "get_queue, bfqq not in async: %p, %d", bfqq, ce counter )
5181  async_bfqq等于bfqq
5184  out :
5185  ce counter 自加
5186  bfq_log_bfqq(bfqd, bfqq, "get_queue, at end: %p, %d", bfqq, ce counter )
5187  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
5188  返回:bfqq
调用者
名称描述
bfq_check_ioprio_change
bfq_get_bfqq_handle_split