On Thu, Mar 31, 2022 at 12:14:56AM +0200, mwilck@xxxxxxxx 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@xxxxxxxxxx> 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 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel