Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:bfq_idle_slice_timer_body

Proto:static void bfq_idle_slice_timer_body(struct bfq_queue *bfqq)

Type:void

Parameter:

TypeParameterName
struct bfq_queue *bfqq
6219  bfqd = parent bfq_data
6223  spin_lock_irqsave( & lock, flags)
6224  bfq_clear_bfqq_wait_request(bfqq)
6226  If bfqq != bfq_queue in service Then
6227  spin_unlock_irqrestore( & lock, flags)
6228  Return
6231  If Budget timeout is not implemented through a dedicated timer, but* just checked on request arrivals and completions, as well as on* idle timer expirations. Then reason = udget took too long to be used
6238  Else if umber of sync and async requests queued [0] == 0 && umber of sync and async requests queued [1] == 0 Then reason = queue has been idling for* too long
6246  Else Go to 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.
Caller
NameDescribe
bfq_idle_slice_timerHandler of the expiration of the timer running if the in-service queue* is idling inside its time slice.