[dm-devel] [PATCH 00/14] Rework uevent filtering and merging
Benjamin Marzinski
bmarzins at redhat.com
Sat Apr 2 03:49:48 UTC 2022
On Thu, Mar 31, 2022 at 12:14:56AM +0200, mwilck at suse.com wrote:
> Hi Ben, hi Christophe, hi Tang Junhui,
>
> the bulk of this patch set (3-8) is a rework of the uevent filtering and
> merging logic introduced in commit ee8888f ("multipath-tools: improve
> processing efficiency for addition and deletion of multipath devices"),
> by Tang Junhui.
>
> The rationale is explained in detail in the commit message in patch 08/14.
> TL;DR: The previous approach delayed uevent handling, possibly a lot, which
> is often undesirable. The new logic passes events to the dispatcher
> immediately, but if they queue up (because the dispatcher can't keep
> up with the rate at which events arrive, or is blocked e.g. by the
> path checker), the dispatcher will apply filtering and merging
> between servicing individual events. This worked well in my own testing,
> but I'd appreciate if ZTE could give it a shot in their special test
> environment.
>
> Patch 9-14 add some more improvements to the uevent handling code, and
> improve logging. The first 2 patches are unrelated fixes.
>
> Comments welcome,
>
> Martin
For everything except 04, 05, and 06
Reviewed-by: Benjamin Marzinski <bmarzins at redhat.com>
BTW, for some reason, these emails didn't come through a plain test for
me.
>
> Martin Wilck (14):
> multipathd: allow adding git rev as version suffix
> multipathd: don't switch to DAEMON_IDLE during startup
> uevent_dispatch(): use while in wait loop
> libmultipath: uevent_dispatch(): process uevents one by one
> libmultipath: uevent_dispatch(): only filter/merge new uevents
> multipathd: reconfigure: disallow changing uid_attrs
> libmultipath: microoptimize uevent filtering and merging
> libmultipath: uevent_listen(): don't delay uevents
> libmultipath: uevent: use struct to pass parameters around
> libmultipath: uevent: log statistics about filtering and merging
> libmultipath: merge_uevq(): filter first, then merge
> libmultipath: uevent_filter(): filter previously merged events
> libmultipath: uevent: improve log messages
> libmultipath: uevent: add debug messages for event queue
>
> Makefile.inc | 3 +-
> libmultipath/config.c | 6 +-
> libmultipath/config.h | 4 +-
> libmultipath/discovery.c | 2 +-
> libmultipath/list.h | 53 +++++
> libmultipath/structs.h | 2 +-
> libmultipath/uevent.c | 407 ++++++++++++++++++++++---------------
> libmultipath/uevent.h | 3 +-
> multipath/multipath.conf.5 | 2 +
> multipathd/main.c | 59 ++++--
> tests/uevent.c | 2 +-
> 11 files changed, 354 insertions(+), 189 deletions(-)
>
> --
> 2.35.1
More information about the dm-devel
mailing list