[PATCH v1 2/3] nvme: Use blk-mq helper for IO termination

Wenbo Wang wenbo.wang at memblaze.com
Thu Feb 4 06:28:24 PST 2016


Is the following execution valid?

1. request A is linked in q->request_list
2. device reset
3. all requests (including request A) are cancelled by nvme_dev_disable()->nvme_clear_queue()
4. device restarted
5. flush q->request_list, and request A is again running in queue_rq.         <-- since request A has been cancelled, it shall not be running again

-----Original Message-----
From: Keith Busch [mailto:keith.busch at intel.com] 
Sent: Wednesday, February 3, 2016 9:27 AM
To: Wenbo Wang
Cc: Sagi Grimberg; Jens Axboe; linux-nvme at lists.infradead.org
Subject: Re: [PATCH v1 2/3] nvme: Use blk-mq helper for IO termination

On Wed, Feb 03, 2016 at 12:35:55AM +0000, Wenbo Wang wrote:
> After canceling these requests, the requests and tags are freed. If queues are restarted shortly, these already freed requests will be queue_rq again? This seems not correct.

That's not true. We only set DNR if the queue is dead. Otherwise the requests are eligible for requeuing if they haven't exceeded total time.


More information about the Linux-nvme mailing list