[PATCH] nvme-multipath: fix io accounting on failover

Nilay Shroff nilay at linux.ibm.com
Wed May 22 06:02:11 PDT 2024



On 5/21/24 23:37, Keith Busch wrote:
> From: Keith Busch <kbusch at kernel.org>
> 
> There are io stats accounting that needs to be handled, so don't call
> blk_mq_end_request() directly. Use the existing nvme_end_req() helper
> that already handles everything.
> 
The changes look good however I have a question about why do we retry an IO
when that IO is cancelled? For instance, when a multipath IO request is cancelled 
(from nvme_cancel_request()) we re-queue the bio in nvme_failover_req().
Similarly, for non-multipath request, we do retry request in nvme_retry_req()
until retries for a request are maxed out by nvme_max_retries. So wouldn't it be 
appropriate to drop the cancelled request instead of retrying? 

However, I do understand retrying a request on a different path when we got the 
request completion status specifying the path related error.

Thanks,
--Nilay




More information about the Linux-nvme mailing list