Re: [PATCH V3] NVMe: basic conversion to blk-mq

2014-05-30 Thread Matias Bjorling
On 05/30/2014 01:12 AM, Jens Axboe wrote: > On 05/29/2014 05:06 PM, Jens Axboe wrote: >> Ah I see, yes that code apparently got axed. The attached patch brings >> it back. Totally untested, I'll try and synthetically hit it to ensure >> that it does work. Note that it currently does unmap and iod f

Re: [PATCH V3] NVMe: basic conversion to blk-mq

2014-05-29 Thread Jens Axboe
On 05/29/2014 05:06 PM, Jens Axboe wrote: > Ah I see, yes that code apparently got axed. The attached patch brings > it back. Totally untested, I'll try and synthetically hit it to ensure > that it does work. Note that it currently does unmap and iod free, so > the request comes back pristine. We c

Re: [PATCH V3] NVMe: basic conversion to blk-mq

2014-05-29 Thread Jens Axboe
On 05/29/2014 04:34 PM, Keith Busch wrote: > On Thu, 29 May 2014, Jens Axboe wrote: >> On 2014-05-28 21:07, Keith Busch wrote: >> Barring any bugs in the code, then yes, this should work. On the >> scsi-mq side, extensive error injection and pulling has been done, and >> it seems to hold up fine no

Re: [PATCH V3] NVMe: basic conversion to blk-mq

2014-05-29 Thread Keith Busch
On Thu, 29 May 2014, Jens Axboe wrote: On 2014-05-28 21:07, Keith Busch wrote: Barring any bugs in the code, then yes, this should work. On the scsi-mq side, extensive error injection and pulling has been done, and it seems to hold up fine now. The ioctl path would need to be audited. It's a

Re: [PATCH V3] NVMe: basic conversion to blk-mq

2014-05-29 Thread Jens Axboe
On 05/29/2014 01:32 PM, Jens Axboe wrote: > On 05/29/2014 08:25 AM, Jens Axboe wrote: +static int nvme_submit_flush_sync(struct nvme_queue *nvmeq, struct nvme_ns *ns) +{ +struct request *req; +struct nvme_command cmnd; + +req = blk_mq_alloc_request(ns-

Re: [PATCH V3] NVMe: basic conversion to blk-mq

2014-05-29 Thread Jens Axboe
On 05/29/2014 08:25 AM, Jens Axboe wrote: >>> +static int nvme_submit_flush_sync(struct nvme_queue *nvmeq, struct >>> nvme_ns *ns) >>> +{ >>> +struct request *req; >>> +struct nvme_command cmnd; >>> + >>> +req = blk_mq_alloc_request(ns->queue, WRITE, GFP_KERNEL, false); >>> +if (!re

Re: [PATCH V3] NVMe: basic conversion to blk-mq

2014-05-29 Thread Jens Axboe
On 2014-05-28 21:07, Keith Busch wrote: On Wed, 28 May 2014, Matias Bjørling wrote: This converts the current NVMe driver to utilize the blk-mq layer. I am concerned about device hot removal since the h/w queues can be freed at any time. I *think* blk-mq helps with this in that the driver will

Re: [PATCH V3] NVMe: basic conversion to blk-mq

2014-05-28 Thread Keith Busch
On Wed, 28 May 2014, Matias Bjørling wrote: This converts the current NVMe driver to utilize the blk-mq layer. I am concerned about device hot removal since the h/w queues can be freed at any time. I *think* blk-mq helps with this in that the driver will not see a new request after calling blk_

[PATCH V3] NVMe: basic conversion to blk-mq

2014-05-28 Thread Matias Bjørling
This converts the current NVMe driver to utilize the blk-mq layer. Outstanding work: - Abortion of I/Os and timeouts Contributions in this patch from: Sam Bradshaw Jens Axboe Signed-off-by: Matias Bjørling --- drivers/block/nvme-core.c | 1143 +++---