Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:The following function returns false either if every active queue* must receive the same share of the throughput (symmetric scenario),* or, as a special case, if bfqq must receive a share of the* throughput lower than or equal to the share that every

Proto:static bool bfq_asymmetric_scenario(struct bfq_data *bfqd, struct bfq_queue *bfqq)

Type:bool

Parameter:

TypeParameterName
struct bfq_data *bfqd
struct bfq_queue *bfqq
680  smallest_weight = bfqq && pointer to the weight counter associated with this entity && pointer to the weight counter associated with this entity == container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(Same as rb_first(), but O(1) ( & * rbtree of weight counters of @bfq_queues, sorted by * weight. Used to keep track of whether all @bfq_queues have * the same weight. The tree contains one counter for each * distinct weight associated to some active and not * weight-raised @bfq_queue (see), structbfq_weight_counter, weights_node)
692  varied_queue_weights = Not smallest_weight && Not RB_EMPTY_ROOT( & rb_root) && (rb_left || rb_right)
697  multiple_classes_busy = * Per-class (RT, BE, IDLE) number of bfq_queues containing * requests (including the queue in service, even if it is * idling).[0] && * Per-class (RT, BE, IDLE) number of bfq_queues containing * requests (including the queue in service, even if it is * idling).[1] || * Per-class (RT, BE, IDLE) number of bfq_queues containing * requests (including the queue in service, even if it is * idling).[0] && * Per-class (RT, BE, IDLE) number of bfq_queues containing * requests (including the queue in service, even if it is * idling).[2] || * Per-class (RT, BE, IDLE) number of bfq_queues containing * requests (including the queue in service, even if it is * idling).[1] && * Per-class (RT, BE, IDLE) number of bfq_queues containing * requests (including the queue in service, even if it is * idling).[2]
702  Return varied_queue_weights || multiple_classes_busy
Caller
NameDescribe
bfq_serv_to_chargesee the definition of bfq_async_charge_factor for details
bfq_arm_slice_timer
idling_needed_for_service_guaranteesThere 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