All of lore.kernel.org
 help / color / mirror / Atom feed
* [dm-devel] [PATCH v2 00/15] Rework uevent filtering and merging
@ 2022-04-04 17:04 mwilck
  2022-04-04 17:04 ` [dm-devel] [PATCH v2 01/15] multipathd: allow adding git rev as version suffix mwilck
                   ` (15 more replies)
  0 siblings, 16 replies; 20+ messages in thread
From: mwilck @ 2022-04-04 17:04 UTC (permalink / raw)
  To: Benjamin Marzinski, Christophe Varoqui; +Cc: dm-devel, Martin Wilck

[-- Attachment #1: Type: application/octet-stream, Size: 2974 bytes --]

From: Martin Wilck <mwilck@suse.com>

Hi Ben, hi Christophe,

the bulk of this patch set (3-7) 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. Unfortunately, Tang Junhui isn't reachable at ZTE any more.

Patch 8-13 add some more improvements to the uevent handling code, and
improve logging. The first 2 patches are unrelated fixes.

Changes v1->v2:

 04: merged patch 04 and 05 of v1 series into 04. Numbering changes accordingly.
     (Benjamin Marzinski)
 04: added function for uevent node deletion in simple cases (no tail deletion,
     no merge_node) (Benjamin Marzinski)
 05 (was 06 in v1): avoid memory leak
 14: new, found by coverity when testing the patched code.
 15: new, from discussion about 05 (Benjamin Marzinski)

Martin Wilck (15):
  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
  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
  libmultipath: apply_format(): prevent buffer overflow
  libmultipath: avoid memory leak with uid_attrs

 Makefile.inc               |   3 +-
 libmultipath/callout.c     |   2 +-
 libmultipath/config.c      |  11 +-
 libmultipath/config.h      |   4 +-
 libmultipath/dict.c        |   5 +
 libmultipath/discovery.c   |   2 +-
 libmultipath/list.h        |  53 +++++
 libmultipath/structs.h     |   2 +-
 libmultipath/uevent.c      | 422 ++++++++++++++++++++++---------------
 libmultipath/uevent.h      |   3 +-
 multipath/multipath.conf.5 |   2 +
 multipathd/main.c          |  65 ++++--
 tests/uevent.c             |   2 +-
 13 files changed, 386 insertions(+), 190 deletions(-)

-- 
2.35.1


[-- Attachment #2: Type: text/plain, Size: 98 bytes --]

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel

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

end of thread, other threads:[~2022-04-04 20:45 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-04 17:04 [dm-devel] [PATCH v2 00/15] Rework uevent filtering and merging mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 01/15] multipathd: allow adding git rev as version suffix mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 02/15] multipathd: don't switch to DAEMON_IDLE during startup mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 03/15] uevent_dispatch(): use while in wait loop mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 04/15] libmultipath: uevent_dispatch(): process uevents one by one mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 05/15] multipathd: reconfigure: disallow changing uid_attrs mwilck
2022-04-04 20:25   ` Benjamin Marzinski
2022-04-04 17:04 ` [dm-devel] [PATCH v2 06/15] libmultipath: microoptimize uevent filtering and merging mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 07/15] libmultipath: uevent_listen(): don't delay uevents mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 08/15] libmultipath: uevent: use struct to pass parameters around mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 09/15] libmultipath: uevent: log statistics about filtering and merging mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 10/15] libmultipath: merge_uevq(): filter first, then merge mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 11/15] libmultipath: uevent_filter(): filter previously merged events mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 12/15] libmultipath: uevent: improve log messages mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 13/15] libmultipath: uevent: add debug messages for event queue mwilck
2022-04-04 17:04 ` [dm-devel] [PATCH v2 14/15] libmultipath: apply_format(): prevent buffer overflow mwilck
2022-04-04 20:34   ` Benjamin Marzinski
2022-04-04 17:04 ` [dm-devel] [PATCH v2 15/15] libmultipath: avoid memory leak with uid_attrs mwilck
2022-04-04 20:45   ` Benjamin Marzinski
2022-04-04 19:39 ` [dm-devel] [PATCH v2 00/15] Rework uevent filtering and merging Benjamin Marzinski

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.