[dm-devel] [PATCH 0/4] NVMe path failover update

Hannes Reinecke hare at suse.de
Fri Sep 15 06:30:26 UTC 2017


Hi all,

the current NVMe support is fairly rudimentary, and we've had reports
about spurious path failures under high load.
Which is a bit disappointing, seeing that high load is exactly what
NVMe is about ...
So here's a patchset to clean up the situation somewhat.
In particular:
- I've fixed up the discovery to fall in line with the other transports,
  like filling out the sg_id fields (so that we're not greeted with weird
  hashes in the topology output)
- I've added a 'none' checker, which doesn't do anything but rather returns
  the passed-in path state. Thing is, NVMe keeps the 'state' attribute in
  sync with the actual operation, so we can rely on that to reflect the
  current state of the connection. As we're evaluating this state via the
  path_offline() call prior to calling any checker there's no need for a
  checker whatsoever, and we can use the 'state' attribute as-is.
  Which is what the 'none' checker does.
  Incidentally, we _might_ get away with using the 'none' checker for
  FC, too; but this is to be tested.

As usual, comments and reviews are welcome.

Hannes Reinecke (4):
  discovery: sanitize NVMe discovery
  libmultipath/discovery: modify NVMe path states
  Add 'none' checker
  hwtable: set 'none' as default checker for NVMe

 libmultipath/checkers.c    | 22 +++++++++++++------
 libmultipath/checkers.h    |  3 ++-
 libmultipath/discovery.c   | 54 +++++++++++++++++++++++++++-------------------
 libmultipath/discovery.h   |  2 +-
 libmultipath/hwtable.c     |  2 +-
 multipath/multipath.conf.5 |  3 +++
 multipathd/main.c          |  2 +-
 7 files changed, 56 insertions(+), 32 deletions(-)

-- 
1.8.5.6




More information about the dm-devel mailing list