[dm-devel] [PATCH 0/8] mutipath: handle nvme:tcp paths better
Benjamin Marzinski
bmarzins at redhat.com
Fri Oct 7 17:35:36 UTC 2022
nvme:tcp devices set BLK_MQ_F_BLOCKING (they are the only block devices
which multipath supports that do so), meaning that block_mq expects that
they can block at certain points while servicing a request. However,
due to the way device-mapper sets up its queue, it is not able to set
BLK_MQ_F_BLOCKING when it includes paths that set this flag. Patches
were written to address this issue but they were rejected upstream
https://lore.kernel.org/linux-block/YcH%2FE4JNag0QYYAa@infradead.org/T/#t
The proposed solution was to have multipath use the bio queue_mode for
multipath devices that include nvme:tcp paths.
Multipathd currently doesn't handle queue_mode as well as it could. Once
a multipath device is created, queue_mode cannot be changed, but
multipath doesn't enforce this. This patchset improves multipath's
handling of the queue_mode feature, and then makes sure that if a
multipath device includes a nvme:tcp path, it will have queue_mode
set to bio.
Benjamin Marzinski (8):
libmultipath: cleanup remove_feature
libmultipath: cleanup add_feature
multipath tests: tests for adding and removing features
libmultipath: fix queue_mode feature handling
multipath tests: tests for reconcile_features_with_queue_mode
libmultipath: prepare proto_id for use by non-scsi devivces
libmultipath: get nvme path transport protocol
libmultipath: enforce queue_mode bio for nmve:tcp paths
libmultipath/configure.c | 28 +-
libmultipath/discovery.c | 31 ++-
libmultipath/dmparser.c | 2 +
libmultipath/print.c | 6 +-
libmultipath/propsel.c | 55 ++++
libmultipath/structs.c | 155 +++++------
libmultipath/structs.h | 44 ++-
libmultipath/structs_vec.c | 7 +
multipath/multipath.conf.5 | 17 +-
multipathd/fpin_handlers.c | 2 +-
tests/Makefile | 4 +-
tests/features.c | 549 +++++++++++++++++++++++++++++++++++++
12 files changed, 784 insertions(+), 116 deletions(-)
create mode 100644 tests/features.c
--
2.17.2
More information about the dm-devel
mailing list