函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:__bfq_bfqq_expire

函数原型:static bool __bfq_bfqq_expire(struct bfq_data *bfqd, struct bfq_queue *bfqq, enum bfqq_expiration reason)

返回类型:bool

参数:

类型参数名称
struct bfq_data *bfqd
struct bfq_queue *bfqq
enum bfqq_expirationreason
3472  如果bfq_bfqq_coop(bfqq)且BFQQ_SEEKY(bfqq)则bfq_mark_bfqq_split_coop(bfqq)
3488  如果RB_EMPTY_ROOT( & sorted list of pending requests )且非reason恒等于BFQQE_PREEMPTEDThere 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的值则
3491  如果umber of requests on the dispatch list or inside driver 恒等于0则udget expiration (in jiffies) 等于jiffies
3500  Called when the bfqq no longer has requests pending, remove it from* the service tree. As a special case, it can be invoked during an* expiration.
3501  否则
3502  bfq_requeue_bfqq(bfqd, bfqq, true)
3507  如果此条件成立可能性小(为编译器优化)(! true if the device is non rotational and performs queueing && !RB_EMPTY_ROOT( & sorted list of pending requests ))则The following function is not marked as __cold because it is* actually cold, but for the same performance goal described in the* comments on the likely() at the beginning of* bfq_setup_cooperator()
3519  返回:rns true if the in-service queue gets freed
调用者
名称描述
bfq_bfqq_expireq_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
bfq_exit_bfqq