All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/20] path checker refactor and misc fixes
@ 2024-07-17 18:10 Benjamin Marzinski
  2024-07-17 18:10 ` [PATCH v2 01/20] libmultipath: rename dm_map_present_by_wwid() and add outputs Benjamin Marzinski
                   ` (20 more replies)
  0 siblings, 21 replies; 26+ messages in thread
From: Benjamin Marzinski @ 2024-07-17 18:10 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: device-mapper development, Martin Wilck

This patchset is based on discussions I had with Martin Wilck about my
last, partially applied patchset. It's based on top of his mwilck-tip
branch, 4ef98926 "fixup! Makefile: add targets for test-progs.cpio and
test-progs.tar". These patches are mostly orthogonal to the
libmp_mapinfo() work. I'll rebase them if further changes to that
patchset stop them form applying cleanly.

The first two patches are reposts of patches from my earlier patchset,
redone to work with the new libmp_mapinfo() API. They make it possible
to add maps by WWID with "multipathd add map".

The rest of the patches are work and bugfixes related to refactoring
checkerloop so that

1. multipath devices get resynced with the kernel occasionally, even if
they have not paths

2. If multiple paths from a multipath device are checked in the same
loop, the multipath device will only get resynced once.

3. All the paths of a multipath device will converge to being checked at
the same time (at least as much as their differing checkint values will
allow).

4. The times for checking the paths of each multipath device will spread
out as much as possible so multipathd doesn't do all of it's checking in
a burst.

5. path checking is done my multipath device (for initialized paths,
the uninitialized paths are handled after all the adopted paths are
handled).

Items 1 & 2 are handled by patch 10 and preceding patches.

Items 3 & 4 and handled by patch 17 and preceding patches.

Item 5 is handled by patch 18 and 19.

Changes in v2 (old patch number in quotes):
01: change from returning minor number to dm info (Martin)
02: adapt to change in patch 01
05 (05-07): squash into one commit (Martin)
08 (10): fix commit message (Matin)
10 (12): rename do_check_mpp amd check_mpp
11 (13): move the code that saved the path name to right before it was
         removed (Martin)
14 (16): use symbolic return codes (Martin)
15 (17): set path state to PATH_UNCHECKED when orphaned, and skip paths
         in INIT_REMOVED in sync_map_state() (Martin)
17 (19): clear pp->pending_ticks in check_path() if the path is delayed
         instead of pending. Use a different equation to check if we
         need to modify the ticks, that can adjust the ticks on every
         check. adapt to change in patch 14
18 (20): adapt to change in patch 14
19 (21): adapt to change in patch 10 and 14
20 (22): Add fixes trailer

Benjamin Marzinski (20):
  libmultipath: rename dm_map_present_by_wwid() and add outputs
  multipathd: make cli_add_map() handle adding maps by WWID correctly
  multipathd: remove checker restart optimization
  multipathd: refactor path state getting code into a helper
  multipathd: handle uninitialized paths in new function
  multipathd: check paths immediately after failing udev initialization
  multipathd: set pp->tick = max_checkint in handle_uninitialized_path
  multipathd: return 0 from check_path() if that path wasn't checked
  multipathd: reorder path state checks
  multipathd: adjust when mpp is synced with the kernel
  multipathd: resync map after setup_map in ev_remove_path
  multipathd: resync map after setup_map in resize_map
  multipathd: always resync map in reload_and_sync_map
  multipathd: correctly handle paths removed for a wwid change
  multipathd: handle changed wwid when adding partial path
  multipathd: don't read conf->checkint twice in check_path
  multipathd: make multipath devices manage their path check times
  multipathd: factor out actual path checking loop from checkerloop
  multipathd: check paths in order by mpp
  multipathd: clean up the correct wwid in check_path_wwid_change

 libmultipath/config.c             |  12 +
 libmultipath/config.h             |   1 +
 libmultipath/configure.c          |   1 +
 libmultipath/devmapper.c          |   5 +-
 libmultipath/devmapper.h          |   2 +-
 libmultipath/libmultipath.version |   5 +
 libmultipath/structs.c            |   2 +
 libmultipath/structs.h            |   3 +
 libmultipath/structs_vec.c        |   9 +-
 libmultipath/valid.c              |   2 +-
 multipathd/cli_handlers.c         |  66 ++--
 multipathd/main.c                 | 582 +++++++++++++++++++-----------
 multipathd/main.h                 |   2 +-
 tests/valid.c                     |  13 +-
 14 files changed, 432 insertions(+), 273 deletions(-)

-- 
2.45.0


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

end of thread, other threads:[~2024-07-19 18:31 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-17 18:10 [PATCH v2 00/20] path checker refactor and misc fixes Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 01/20] libmultipath: rename dm_map_present_by_wwid() and add outputs Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 02/20] multipathd: make cli_add_map() handle adding maps by WWID correctly Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 03/20] multipathd: remove checker restart optimization Benjamin Marzinski
2024-07-18 19:41   ` Martin Wilck
2024-07-17 18:10 ` [PATCH v2 04/20] multipathd: refactor path state getting code into a helper Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 05/20] multipathd: handle uninitialized paths in new function Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 06/20] multipathd: check paths immediately after failing udev initialization Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 07/20] multipathd: set pp->tick = max_checkint in handle_uninitialized_path Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 08/20] multipathd: return 0 from check_path() if that path wasn't checked Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 09/20] multipathd: reorder path state checks Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 10/20] multipathd: adjust when mpp is synced with the kernel Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 11/20] multipathd: resync map after setup_map in ev_remove_path Benjamin Marzinski
2024-07-18 20:06   ` Martin Wilck
2024-07-17 18:10 ` [PATCH v2 12/20] multipathd: resync map after setup_map in resize_map Benjamin Marzinski
2024-07-17 18:10 ` [PATCH v2 13/20] multipathd: always resync map in reload_and_sync_map Benjamin Marzinski
2024-07-17 18:11 ` [PATCH v2 14/20] multipathd: correctly handle paths removed for a wwid change Benjamin Marzinski
2024-07-17 18:11 ` [PATCH v2 15/20] multipathd: handle changed wwid when adding partial path Benjamin Marzinski
2024-07-17 18:11 ` [PATCH v2 16/20] multipathd: don't read conf->checkint twice in check_path Benjamin Marzinski
2024-07-17 18:11 ` [PATCH v2 17/20] multipathd: make multipath devices manage their path check times Benjamin Marzinski
2024-07-18 20:24   ` Martin Wilck
2024-07-19 18:31     ` Benjamin Marzinski
2024-07-17 18:11 ` [PATCH v2 18/20] multipathd: factor out actual path checking loop from checkerloop Benjamin Marzinski
2024-07-17 18:11 ` [PATCH v2 19/20] multipathd: check paths in order by mpp Benjamin Marzinski
2024-07-17 18:11 ` [PATCH v2 20/20] multipathd: clean up the correct wwid in check_path_wwid_change Benjamin Marzinski
2024-07-18 20:35 ` [PATCH v2 00/20] path checker refactor and misc fixes Martin Wilck

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.