函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:bfq_add_request

函数原型:static void bfq_add_request(struct request *rq)

返回类型:void

参数:

类型参数名称
struct request *rq
1866  bfqq等于RQ_BFQQ(rq)
1867  bfqd等于parent bfq_data
1869  old_wr_coeff等于actor by which the weight of this queue is multiplied
1870  bool interactive = false
1872  bfq_log_bfqq(bfqd, bfqq, "add_request %d", rq_is_sync(rq))
1873  umber of sync and async requests queued [rq_is_sync(rq)]自加
1874  number of queued requests 自加
1876  如果RB_EMPTY_ROOT( & sorted list of pending requests )且bfq_bfqq_sync(bfqq)则
1989  如果ime_is_before_eq_jiffies(a) return true if a is before or equal to jiffies(last time the inject limit has been decreased, in jiffies + msecs_to_jiffies: - convert milliseconds to jiffies*@m: time in milliseconds* conversion is done as follows:* - negative values mean 'infinite timeout' (MAX_JIFFY_OFFSET)* - 'too large' values [that would result in larger than)则bfq_reset_inject_limit(bfqd, bfqq)
2050  RB-tree support functions for inserting/lookup/removal of requests* in a sorted RB tree.
2055  prev等于 fifo isn't expired, next request to serve
2056  next_rq等于Lifted from AS - choose which of rq1 and rq2 that is best served now.* We choose the request that is closer to the head right now. Distance* behind the head is penalized and only allowed to a certain extent.
2057  fifo isn't expired, next request to serve 等于next_rq
2063  如果此条件成立可能性小(为编译器优化)(! true if the device is non rotational and performs queueing && prev != fifo isn't expired, next request to serve )则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()
2066  如果非bfq_bfqq_busy(bfqq)则bfq_bfqq_handle_idle_busy_switch(bfqd, bfqq, old_wr_coeff, rq, & interactive)
2069  否则
2080  如果prev不等于 fifo isn't expired, next request to serve q_updated_next_req - update the queue after a new next_rq selection
2110  如果 if set to true, low-latency heuristics are enabled old_wr_coeff恒等于1或actor by which the weight of this queue is multiplied 恒等于1或interactive的值则Start time of the current weight-raising period if* the @bfq-queue is being weight-raised, otherwise* finish time of the last weight-raising period.等于jiffies
调用者
名称描述
__bfq_insert_requestrns true if it causes the idle timer to be disabled