Re: [PATCH v2 00/20] path checker refactor and misc fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2024-07-17 at 14:10 -0400, Benjamin Marzinski wrote:
> 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(-)
> 

For the series, except 17/20: 
Reviewed-by: Martin Wilck <mwilck@xxxxxxxx>







[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux