On Thu, Jul 14, 2022 at 05:30:51PM +0200, Daniel Wagner wrote: >On Thu, Jul 14, 2022 at 01:49:23PM +0530, Kanchan Joshi wrote: >> If path is not available, retry is not done immediately rather we wait for >> path to be available (as underlying controller may still be >> resetting/connecting). List helped as command gets added into >> it (and submitter/io_uring gets the control back), and retry is done >> exact point in time. >> But yes, it won't harm if we do couple of retries even if path is known >> not to be available (somewhat like iopoll). As this situation is >> not common. And with that scheme, we don't have to link io_uring_cmd. > >Stupid question does it only fail over immediately when the path is not >available or any failure? If it fails over for everything it's possible >the target gets the same request twice. FWIW, we are just debugging this >scenario right now. failover is only for path-related failure, and not otherwise. you might want to take a look at nvme_decide_disposition routine where it makes that decision.