All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/16] multipath marginal pathgroups
@ 2019-08-02 16:33 Benjamin Marzinski
  2019-08-02 16:33 ` [PATCH 01/16] libmultipath: make vector_foreach_slot_backwards work as expected Benjamin Marzinski
                   ` (15 more replies)
  0 siblings, 16 replies; 41+ messages in thread
From: Benjamin Marzinski @ 2019-08-02 16:33 UTC (permalink / raw)
  To: Christophe Varoqui
  Cc: device-mapper development, Martin Wilck, Muneendra Kumar

The first patch in this series is simply a resend of my previous patch
to fix vector_foreach_slot_backwards(). The rest of the patches are
related to adding support for an alternative way to deal with marginal
paths. Instead of delaying their reinstatement, which can cause problems
if multipath isn't set to queue IO when there are no usable paths, this
patchset adds a marginal_pathgroups option. If this is set, marginal
paths will be reinstated, but added to seperate marginal pathgroups.
They will remain there until the time when they would normally be
reinstated, at which point they will be returned to their regular
pathgroups. Marginal pathgroups will have a priority lower than all
regular pathgroups. This has the advantage of continuing to track
marginal paths, even if all the other paths go down temporarily, so that
multipath can switch back to the normal paths as soon as they come back
up.  This code also allows users to manually move paths between marginal
and regular pathgroups. This is especially important for Broadcom's
Fiber Channel Transport Daemon, since it doesn't use the multipathd
marginal path detectors, and thus will not automatically reinstate
marginal paths when all other paths have failed. 

https://www.mail-archive.com/dm-devel@redhat.com/msg12956.html

Benjamin Marzinski (16):
  libmultipath: make vector_foreach_slot_backwards work as expected
  libmultipath: add marginal paths and groups infrastructure
  tests: add path grouping policy unit tests.
  libmultipath: add wrapper function around pgpolicyfn
  libmultipath: fix double free in pgpolicyfn error paths
  libmultipath: remove store_pathgroup
  libmultipath: make one_group allocate a new vector
  libmultipath: consolidate group_by_* functions
  tests: update pgpolicy tests to work with group_paths()
  libmultipath: make pgpolicyfn take a paths vector
  libmultipath: make group_paths handle marginal paths
  tests: add tests for grouping marginal paths.
  libmultipath: add marginal_pathgroups config option
  libmutipath: deprecate delay_*_checks
  multipathd: use marginal_pathgroups
  multipath: update man pages

 libmultipath/config.h      |    1 +
 libmultipath/configure.c   |   22 +-
 libmultipath/dict.c        |    3 +
 libmultipath/pgpolicies.c  |  346 +++++-------
 libmultipath/pgpolicies.h  |   12 +-
 libmultipath/print.c       |   18 +
 libmultipath/print.h       |    6 +-
 libmultipath/propsel.c     |   62 ++-
 libmultipath/propsel.h     |    2 -
 libmultipath/structs.c     |   16 +-
 libmultipath/structs.h     |   15 +-
 libmultipath/switchgroup.c |   15 +-
 libmultipath/vector.h      |    2 +-
 multipath/multipath.conf.5 |   75 ++-
 multipathd/cli.c           |    5 +
 multipathd/cli.h           |    4 +
 multipathd/cli_handlers.c  |   91 ++++
 multipathd/cli_handlers.h  |    3 +
 multipathd/main.c          |   90 ++--
 multipathd/multipathd.8    |   19 +
 tests/Makefile             |    2 +-
 tests/pgpolicy.c           | 1036 ++++++++++++++++++++++++++++++++++++
 22 files changed, 1503 insertions(+), 342 deletions(-)
 create mode 100644 tests/pgpolicy.c

-- 
2.17.2

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2019-08-21 10:28 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-02 16:33 [PATCH 00/16] multipath marginal pathgroups Benjamin Marzinski
2019-08-02 16:33 ` [PATCH 01/16] libmultipath: make vector_foreach_slot_backwards work as expected Benjamin Marzinski
2019-08-14 21:35   ` Martin Wilck
2019-08-02 16:33 ` [PATCH 02/16] libmultipath: add marginal paths and groups infrastructure Benjamin Marzinski
2019-08-14 21:37   ` Martin Wilck
2019-08-02 16:33 ` [PATCH 03/16] tests: add path grouping policy unit tests Benjamin Marzinski
2019-08-14 21:22   ` Martin Wilck
2019-08-16 21:01     ` Benjamin Marzinski
2019-08-19  9:34       ` Martin Wilck
2019-08-14 21:38   ` Martin Wilck
2019-08-02 16:33 ` [PATCH 04/16] libmultipath: add wrapper function around pgpolicyfn Benjamin Marzinski
2019-08-14 21:39   ` Martin Wilck
2019-08-16 21:02     ` Benjamin Marzinski
2019-08-02 16:33 ` [PATCH 05/16] libmultipath: fix double free in pgpolicyfn error paths Benjamin Marzinski
2019-08-14 21:21   ` Martin Wilck
2019-08-14 21:39   ` Martin Wilck
2019-08-02 16:33 ` [PATCH 06/16] libmultipath: remove store_pathgroup Benjamin Marzinski
2019-08-14 21:40   ` Martin Wilck
2019-08-02 16:33 ` [PATCH 07/16] libmultipath: make one_group allocate a new vector Benjamin Marzinski
2019-08-14 21:40   ` Martin Wilck
2019-08-02 16:33 ` [PATCH 08/16] libmultipath: consolidate group_by_* functions Benjamin Marzinski
2019-08-14 21:40   ` Martin Wilck
2019-08-02 16:33 ` [PATCH 09/16] tests: update pgpolicy tests to work with group_paths() Benjamin Marzinski
2019-08-14 21:20   ` Martin Wilck
2019-08-14 21:41   ` Martin Wilck
2019-08-02 16:33 ` [PATCH 10/16] libmultipath: make pgpolicyfn take a paths vector Benjamin Marzinski
2019-08-14 22:05   ` Martin Wilck
2019-08-16 21:28     ` Benjamin Marzinski
2019-08-20 22:55       ` Benjamin Marzinski
2019-08-21 10:28         ` Martin Wilck
2019-08-02 16:33 ` [PATCH 11/16] libmultipath: make group_paths handle marginal paths Benjamin Marzinski
2019-08-02 16:33 ` [PATCH 12/16] tests: add tests for grouping " Benjamin Marzinski
2019-08-02 16:33 ` [PATCH 13/16] libmultipath: add marginal_pathgroups config option Benjamin Marzinski
2019-08-02 16:33 ` [PATCH 14/16] libmutipath: deprecate delay_*_checks Benjamin Marzinski
2019-08-14 21:20   ` Martin Wilck
2019-08-16 20:47     ` Benjamin Marzinski
2019-08-16 21:51       ` Martin Wilck
2019-08-02 16:33 ` [PATCH 15/16] multipathd: use marginal_pathgroups Benjamin Marzinski
2019-08-02 16:33 ` [PATCH 16/16] multipath: update man pages Benjamin Marzinski
2019-08-14 21:21   ` Martin Wilck
2019-08-16 20:54     ` Benjamin Marzinski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.