• T
    blk-mq: add optional request->alloc_time_ns · 449de6b8
    Tejun Heo 提交于
    mainline inclusion
    from mainline-5.4-rc1
    commit 6f816b4b746c2241540e537682d30d8e9997d674
    category: feature
    bugzilla: 38688
    CVE: NA
    
    ---------------------------
    
    There are currently two start time timestamps - start_time_ns and
    io_start_time_ns.  The former marks the request allocation and and the
    second issue-to-device time.  The planned io.weight controller needs
    to measure the total time bios take to execute after it leaves rq_qos
    including the time spent waiting for request to become available,
    which can easily dominate on saturated devices.
    
    This patch adds request->alloc_time_ns which records when the request
    allocation attempt started.  As it isn't used for the usual stats,
    make it optional behind CONFIG_BLK_RQ_ALLOC_TIME and
    QUEUE_FLAG_RQ_ALLOC_TIME so that it can be compiled out when there are
    no users and it's active only on queues which need it even when
    compiled in.
    
    v2: s/pre_start_time/alloc_time/ and add CONFIG_BLK_RQ_ALLOC_TIME
        gating as suggested by Jens.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    
    Conflict:
      include/linux/blkdev.h
      block/Kconfig
      block/blk-mq.c
    Signed-off-by: NYu Kuai <yukuai3@huawei.com>
    Reviewed-by: NHou Tao <houtao1@huawei.com>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    449de6b8
blkdev.h 61.7 KB