Skip to content
  1. Oct 20, 2021
  2. Oct 19, 2021
  3. Oct 18, 2021
    • Jens Axboe's avatar
      block: store elevator state in request · 2ff0682d
      Jens Axboe authored
      
      
      Add an rq private RQF_ELV flag, which tells the block layer that this
      request was initialized on a queue that has an IO scheduler attached.
      This allows for faster checking in the fast path, rather than having to
      deference rq->q later on.
      
      Elevator switching does full quiesce of the queue before detaching an
      IO scheduler, so it's safe to cache this in the request itself.
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      2ff0682d
    • Jens Axboe's avatar
      block: only mark bio as tracked if it really is tracked · 90b8faa0
      Jens Axboe authored
      
      
      We set BIO_TRACKED unconditionally when rq_qos_throttle() is called, even
      though we may not even have an rq_qos handler. Only mark it as TRACKED if
      it really is potentially tracked.
      
      This saves considerable time for the case where the bio isn't tracked:
      
           2.64%     -1.65%  [kernel.vmlinux]  [k] bio_endio
      
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      90b8faa0