Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\bfq-iosched.c Create Date:2022-07-28 17:57:23
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

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

Proto:static void bfq_rq_enqueued(struct bfq_data *bfqd, struct bfq_queue *bfqq, struct request *rq)

Type:void

Parameter:

TypeParameterName
struct bfq_data *bfqd
struct bfq_queue *bfqq
struct request *rq
5352  If op and common flags & REQ_META Then umber 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  If bfqq == bfq_queue in service && bfq_bfqq_wait_request(bfqq) Then
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  If small_req && idling_boosts_thr_without_issues(bfqd, bfqq) && Not budget_timeout Then Return
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  If budget_timeout Then q_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
Caller
NameDescribe
__bfq_insert_requestrns true if it causes the idle timer to be disabled