Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:For a queue that becomes empty, device idling is allowed only if* this function returns true for that queue

Proto:static bool bfq_better_to_idle(struct bfq_queue *bfqq)

Type:bool

Parameter:

TypeParameterName
struct bfq_queue *bfqq
4182  bfqd = parent bfq_data
4186  If Value for the false possibility is greater at compile time(!bfqq_process_refs(bfqq)) Then Return false
4189  If Value for the false possibility is greater at compile time(* Force device idling whenever needed to provide accurate * service guarantees, without caring about throughput * issues. CAVEAT: this may even increase latencies, in case * of useless idling for processes that did stop doing I/O.) Then Return true
4200  If maximum idling time == 0 || Not bfq_bfqq_sync(bfqq) || bfq_class_idle(bfqq) Then Return false
4204  idling_boosts_thr_with_no_issue = idling_boosts_thr_without_issues(bfqd, bfqq)
4207  idling_needed_for_service_guar = There is a case where idling does not have to be performed for* throughput concerns, but to preserve the throughput share of* the process associated with bfqq
4216  Return idling_boosts_thr_with_no_issue || idling_needed_for_service_guar
Caller
NameDescribe
bfq_bfqq_must_idleIf the in-service queue is empty but the function bfq_better_to_idle* returns true, then:* 1) the queue must remain in service and cannot be expired, and* 2) the device must be idled to wait for the possible arrival of a new* request for the queue
bfq_select_queueSelect a queue for service. If we have a current queue in service,* check whether to continue servicing it, or retrieve and set a new one.
bfq_completed_request