On Tue, Dec 19, 2017 at 04:05:41PM -0500, Mike Snitzer wrote:
> These patches enable DM multipath to work well on NVMe over Fabrics
> devices. Currently that implies CONFIG_NVME_MULTIPATH is _not_ set.
>
> But follow-on work will be to make it so that native NVMe multipath
> and DM multipath can
On Tue, Dec 26 2017 at 3:51pm -0500,
Keith Busch wrote:
> On Tue, Dec 19, 2017 at 04:05:41PM -0500, Mike Snitzer wrote:
> > These patches enable DM multipath to work well on NVMe over Fabrics
> > devices. Currently that implies CONFIG_NVME_MULTIPATH is _not_ set.
> >
> > But follow-on work wil
Also, remove NVMe-local REQ_NVME_MPATH since setting request_queue's
failover_rq_fn serves the same purpose. NVMe's error handling gives a
request further consideration about it being retryable if its
request_queue has failover_rq_fn set.
Signed-off-by: Mike Snitzer
---
drivers/nvme/host/core.c
This v2 follows Keith's suggestion to only add a 'failover_rq_fn' to
the request_queue (rather than both the bio and request structs).
Jens or Christoph, provided review is favorable, I'd very much
appreciate it you'd pick up patches 1 - 3 for 4.16.
These patches enable DM multipath to work well
All requests allocated from a request_queue with this callback set can
failover their requests during completion.
This callback is expected to use the blk_steal_bios() interface to
transfer a request's bios back to an upper-layer bio-based
request_queue.
This will be used by both NVMe multipath a
nvme_req_needs_failover() could be used regardless of whether
CONFIG_NVME_MULTIPATH is set.
DM multipath will also make use of it.
Signed-off-by: Mike Snitzer
---
drivers/nvme/host/core.c | 46 +++
drivers/nvme/host/multipath.c | 46 -
Add a 'skip_endio_hook' flag member to 'struct dm_target' that if set
instructs calls to .end_io (or .rq_end_io) to be skipped.
NVMe bio-based doesn't use multipath_end_io_bio() for anything other
than updating the path-selector. So it can be avoided completely if the
round-robin path selector is
Like NVMe's native multipath support, DM multipath's NVMe bio-based
support now allows NVMe core's error handling to requeue an NVMe blk-mq
request's bios onto DM multipath's queued_bios list for resubmission
once fail_path() occurs. multipath_failover_rq() serves as a
replacement for the traditio