Skip to content
Snippets Groups Projects
  1. Apr 25, 2014
    • Christoph Hellwig's avatar
      blk-mq: respect rq_affinity · 38535201
      Christoph Hellwig authored
      
      The blk-mq code is using it's own version of the I/O completion affinity
      tunables, which causes a few issues:
      
       - the rq_affinity sysfs file doesn't work for blk-mq devices, even if it
         still is present, thus breaking existing tuning setups.
       - the rq_affinity = 1 mode, which is the defauly for legacy request based
         drivers isn't implemented at all.
       - blk-mq drivers don't implement any completion affinity with the default
         flag settings.
      
      This patches removes the blk-mq ipi_redirect flag and sysfs file, as well
      as the internal BLK_MQ_F_SHOULD_IPI flag and replaces it with code that
      respects the queue-wide rq_affinity flags and also implements the
      rq_affinity = 1 mode.
      
      This means I/O completion affinity can now only be tuned block-queue wide
      instead of per context, which seems more sensible to me anyway.
      
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      38535201
  2. Apr 24, 2014
    • Jens Axboe's avatar
      blk-mq: fix race with timeouts and requeue events · 87ee7b11
      Jens Axboe authored
      
      If a requeue event races with a timeout, we can get into the
      situation where we attempt to complete a request from the
      timeout handler when it's not start anymore. This causes a crash.
      So have the timeout handler check that REQ_ATOM_STARTED is still
      set on the request - if not, we ignore the event. If this happens,
      the request has now been marked as complete. As a consequence, we
      need to ensure to clear REQ_ATOM_COMPLETE in blk_mq_start_request(),
      as to maintain proper request state.
      
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      87ee7b11
    • Jens Axboe's avatar
      Revert "blk-mq: initialize req->q in allocation" · 70ab0b2d
      Jens Axboe authored
      This reverts commit 6a3c8a3a.
      
      We need selective clearing of the request to make the init-at-free
      time completely safe. Otherwise we end up stomping on
      rq->atomic_flags, which we don't want to do.
      70ab0b2d
  3. Apr 23, 2014
  4. Apr 22, 2014
  5. Apr 21, 2014
  6. Apr 17, 2014
  7. Apr 16, 2014
  8. Apr 15, 2014
  9. Apr 13, 2014
Loading