Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:bfq_add_request

Proto:static void bfq_add_request(struct request *rq)

Type:void

Parameter:

TypeParameterName
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  If RB_EMPTY_ROOT( & sorted list of pending requests ) && bfq_bfqq_sync(bfqq) Then
1989  If 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) Then 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  If Value for the false possibility is greater at compile time(! true if the device is non rotational and performs queueing && prev != fifo isn't expired, next request to serve ) Then 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  If Not bfq_bfqq_busy(bfqq) Then bfq_bfqq_handle_idle_busy_switch(bfqd, bfqq, old_wr_coeff, rq, & interactive)
2069  Else
2080  If prev != fifo isn't expired, next request to serve Then q_updated_next_req - update the queue after a new next_rq selection
2110  If 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) Then 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
Caller
NameDescribe
__bfq_insert_requestrns true if it causes the idle timer to be disabled