[PATCH V5 0/2] nvme-pci: fix the timeout case when reset is ongoing
jianchao.wang
jianchao.w.wang at oracle.com
Fri Jan 19 05:56:48 PST 2018
Hi Keith
Thanks for your kindly response.
On 01/19/2018 07:52 PM, Keith Busch wrote:
> On Fri, Jan 19, 2018 at 05:02:06PM +0800, jianchao.wang wrote:
>> We should not use blk_sync_queue here, the requeue_work and run_work will be canceled.
>> Just flush_work(&q->timeout_work) should be ok.
>
> I agree flushing timeout_work is sufficient. All the other work had
> already better not be running either, so it doesn't hurt to call the
> sync API.
In nvme_dev_disable, the outstanding requests will be requeued finally.
I'm afraid the requests requeued on the q->requeue_list will be blocked until another requeue
occurs, if we cancel the requeue work before it get scheduled.
>
>> In addition, we could check NVME_CC_ENABLE in nvme_dev_disable to avoid redundant invoking.
>> :)
>
> That should already be inferred through reading back the CSTS register.
>
Yes, the "dead" in nvme_dev_disable looks enough for these uncommon cases.
Thanks
Jianchao
More information about the Linux-nvme
mailing list