• Tejun Heo's avatar
    Revert "block: inherit request start time from bio for BLK_CGROUP" · 4cddeaca
    Tejun Heo authored
    This reverts commit 00067077. It has a
    couple problems:
    
    * bio_issue_time() is stored in bio->bi_issue truncated to 51 bits. This
      overflows in slightly over 26 days. Setting rq->io_start_time_ns with it
      means that io duration calculation would yield >26days after 26 days of
      uptime. This, for example, confuses kyber making it cause high IO
      latencies.
    
    * rq->io_start_time_ns should record the time that the IO is issued to the
      device so that on-device latency can be measured. However,
      bio_issue_time() is set before the bio goes through the rq-qos controllers
      (wbt, iolatency, iocost), so when the bio gets throttled in any of the
      mechanisms, the measured latencies make no sense - on-device latencies end
      up higher than request-alloc-to-completion latencies.
    
    We'll need a smarter way to avoid calling ktime_get_ns() repeatedly
    back-to-back. For now, let's revert the commit.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: stable@vger.kernel.org # v5.16+
    Link: https://lore.kernel.org/r/YmmeOLfo5lzc+8yI@slm.duckdns.orgSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    4cddeaca
blk-mq.c 118 KB