[dm-devel] [PATCH v2 00/14] multipath marginal pathgroups

Martin Wilck Martin.Wilck at suse.com
Fri Aug 30 07:09:23 UTC 2019


On Fri, 2019-08-23 at 12:48 -0500, Benjamin Marzinski wrote:
> 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
> 
> Changes in v2:
> - patch 04/14 is a combination of the old 04/16, 06/16, and 07/16
>   patches, based on Martin's suggestion. Since all the code is the
> same
>   as the previous patches, I have kept Martin's Reviewed-by
> 
> - old patch 09/16 has been moved up to 05/14 based on Martin's
>   suggestion. There are no code changes
> 
> - patch 09/14 (old patch 11/16) moves path_group_prio_update()
>   earlier in select_path_group() to make sure the pgp->marginal check
>   uses a current value.
> 
> - patch 12/14 (old patch 14/16) changes how delay_checks is selected,
>   to ignore the delay_checks values if any san_path_err options are
>   set, based on Martin's suggestions. It also changes the man page
>   wording.
> 
> Benjamin Marzinski (14):
>   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
>   tests: update pgpolicy tests to work with group_paths()
>   libmultipath: fix double free in pgpolicyfn error paths
>   libmultipath: consolidate group_by_* functions
>   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   |   23 +-
>  libmultipath/dict.c        |    3 +
>  libmultipath/pgpolicies.c  |  346 +++++-------
>  libmultipath/pgpolicies.h  |   12 +-
>  libmultipath/print.c       |   18 +
>  libmultipath/print.h       |    6 +-
>  libmultipath/propsel.c     |   89 +++-
>  libmultipath/propsel.h     |    3 +-
>  libmultipath/structs.c     |   16 +-
>  libmultipath/structs.h     |   15 +-
>  libmultipath/switchgroup.c |   15 +-
>  libmultipath/vector.h      |    2 +-
>  multipath/multipath.conf.5 |   74 ++-
>  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, 1523 insertions(+), 350 deletions(-)
>  create mode 100644 tests/pgpolicy.c
> 


For the entire set:

Reviewed-by: Martin Wilck <mwilck at suse.com>





More information about the dm-devel mailing list