函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Called when a new fs request (rq) is added to bfqq. Check if there's* something we should do about it.

函数原型:static void bfq_rq_enqueued(struct bfq_data *bfqd, struct bfq_queue *bfqq, struct request *rq)

返回类型:void

参数:

类型参数名称
struct bfq_data *bfqd
struct bfq_queue *bfqq
struct request *rq
5352  如果 op and common flags 按位与REQ_METAumber of pending metadata requests 自加
5355  position of the last request enqueued 等于lk_rq_pos() : the current sector* blk_rq_bytes() : bytes left in the entire request* blk_rq_cur_bytes() : bytes left in the current segment* blk_rq_err_bytes() : bytes left till the next error boundary* blk_rq_sectors() : sectors left in the entire blk_rq_sectors(rq)
5357  如果bfqq恒等于 bfq_queue in service bfq_bfqq_wait_request(bfqq)则
5358  small_req等于umber of sync and async requests queued [rq_is_sync(rq)]恒等于1且blk_rq_sectors(rq)小于32
5360  budget_timeout等于Budget timeout is not implemented through a dedicated timer, but* just checked on request arrivals and completions, as well as on* idle timer expirations.
5378  如果small_reqidling_boosts_thr_without_issues(bfqd, bfqq)且非budget_timeout则返回
5389  bfq_clear_bfqq_wait_request(bfqq)
5390  hrtimer_try_to_cancel - try to deactivate a timer*@timer: hrtimer to stop* Returns:* * 0 when the timer was not active* * 1 when the timer was active* * -1 when the timer is currently executing the callback function and* cannot be stopped
5399  如果budget_timeoutq_bfqq_expire - expire a queue.*@bfqd: device owning the queue.*@bfqq: the queue to expire.*@compensate: if true, compensate for the time spent idling.*@reason: the reason causing the expiration.* If the process associated with bfqq does slow I/O (e
调用者
名称描述
__bfq_insert_requestrns true if it causes the idle timer to be disabled