[PATCHv2 00/10] Second attempt at blk-mq + nvme hotplug fixes

Keith Busch keith.busch at intel.com
Tue Jan 6 18:57:54 PST 2015


Second try, this time tested against many more scenarios than before
with error injection and surprise hot-removal and intermittent resets.

I'm adding a lot of stuff outside the driver, but I didn't find a
cleaner way to a lot of these things. This makes me a little nervous,
so please let me know if anything seems amiss here. I don't think any
of the blk-mq changes could possibly be harmful to anyone else since
nvme is the only driver that uses most of the additions.

The only issue remaining I found is unfreezing queues might tigger the
percpu_ref_reinit WARN_ON_ONCE when the driver restarts a request_queue
with queued up IO's.

This is against linux-block/for-next.

Jens,
I believe fourth one ("abort requeue list") is from you, but I didn't find
the patch.

Keith Busch (10):
  blk-mq: Wake tasks entering a dying queue 
  blk-mq: Export test for started requests
  blk-mq: Let drivers cancel requeue_work
  blk-mq: Export abort requeue list
  blk-mq: Allow requests to never expire
  blk-mq: End unstarted requests on a dying queue
  NVMe: Start driver allocated requests
  NVMe: Start and stop h/w queues on reset
  NVMe: Admin queue error handling
  NVMe: Command abort handling fixes

 block/blk-mq.c            |   46 ++++++++++++++-
 drivers/block/nvme-core.c |  142 +++++++++++++++++++++++++++++++--------------
 include/linux/blk-mq.h    |    3 +
 include/linux/blkdev.h    |    1 +
 4 files changed, 146 insertions(+), 46 deletions(-)

-- 
1.7.10.4




More information about the Linux-nvme mailing list