[PATCH v12] NVMe: Convert to blk-mq

Keith Busch keith.busch at intel.com
Mon Aug 18 15:49:45 PDT 2014


On Fri, 15 Aug 2014, Matias Bjørling wrote:
>
> * NVMe queues are merged with the tags structure of blk-mq.
>

I see the driver's queue suspend logic is removed, but I didn't mean to
imply it was safe to do so without replacing it with something else. I
thought maybe we could use the blk_stop/start_queue() functions if I'm
correctly understanding what they're for.

With what's in version 12, we could free an irq multiple times that
doesn't even belong to the nvme queue anymore in certain error conditions.

A couple other things I just noticed:

  * We lose the irq affinity hint after a suspend/resume or device reset
  because the driver's init_hctx() isn't called in these scenarios.

  * After a reset, we are not guaranteed that we even have the same number
  of h/w queues. The driver frees ones beyond the device's capabilities,
  so blk-mq may have references to freed memory. The driver may also
  allocate more queues if it is capable, but blk-mq won't be able to take
  advantage of that.


More information about the Linux-nvme mailing list