函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:bfq_idle_slice_timer_body

函数原型:static void bfq_idle_slice_timer_body(struct bfq_queue *bfqq)

返回类型:void

参数:

类型参数名称
struct bfq_queue *bfqq
6219  bfqd等于parent bfq_data
6223  spin_lock_irqsave( & lock, flags)
6224  bfq_clear_bfqq_wait_request(bfqq)
6226  如果bfqq不等于 bfq_queue in service
6227  spin_unlock_irqrestore( & lock, flags)
6228  返回
6231  如果Budget timeout is not implemented through a dedicated timer, but* just checked on request arrivals and completions, as well as on* idle timer expirations.reason等于udget took too long to be used
6238  否则如果umber of sync and async requests queued [0]恒等于0且umber of sync and async requests queued [1]恒等于0则reason等于queue has been idling for* too long
6246  否则转到:schedule_dispatch
6249  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
6251  schedule_dispatch :
6252  spin_unlock_irqrestore( & lock, flags)
6253  Scheduler run of queue, if there are requests pending and no one in the* driver that will restart queueing.
调用者
名称描述
bfq_idle_slice_timerHandler of the expiration of the timer running if the in-service queue* is idling inside its time slice.