Linux Device Mapper development
 help / color / mirror / Atom feed
From: "Benjamin Marzinski" <bmarzins@redhat.com>
To: Christophe Varoqui <christophe.varoqui@opensvc.com>
Cc: dm-devel@redhat.com
Subject: Re: [PATCH 00/12] multipath: new and rebased patches
Date: Thu, 15 Mar 2018 09:30:30 -0500	[thread overview]
Message-ID: <20180315143030.GJ14513@octiron.msp.redhat.com> (raw)
In-Reply-To: <1521049605-22050-1-git-send-email-bmarzins@redhat.com>

Ooops. I accidentally used your old email for this patchset, Christophe.

-Ben

On Wed, Mar 14, 2018 at 12:46:33PM -0500, Benjamin Marzinski wrote:
> Patches 1-5 are minor bug fixes and a unit test for basenamecpy.
> 
> Patch 6 is revised version of my nanosleep patch, that only changes
> the checkerloop code, since that is the only time when multipathd
> actually sets an alarm without locking.
> 
> Patches 7-11 are a rebase of my "alternate dmevents waiter method"
> patchset.  The only code that has changed outside of rebasing them is in
> patch 11.  It adds a function, remove_map_by_alias(), and uses it in
> dmevent_loop(). This simply moves the code the gets the multipath device
> out of dmevents.c, so it can work exclusively in device names.  It also
> changes the names of the functions the initialize and cleanup the
> dmevents polling code to match similar multipathd functions and adds
> a Makefile define to disable using the polling code, both suggested
> by Martin Wilck.
> 
> Patch 12 is unit testing code for the new code in dmevents.c
> 
> Here is the description from my initial posting of the alternate dmevents
> waiter method" patchset:
> 
> This patchset implements a new method of getting dmevents for
> multipathd.
> 
> With the existing wait code, multipathd needs to create a waiter thread
> for every multipath device. This can become very wasteful in setups with
> large numbers of multipath devices. These duplicate threads all are
> serialized to update the multipath devices, so they don't actually speed
> up dmevent handling.
> 
> The new method uses the new dmevent polling ability introduced in the
> 4.37.0 device-mapper kernel module.  The original method has been
> retained for backwards compatablility, and it is possible to force
> multipathd to use the orignal method on newer kernels. The benefit of
> this new method is that there is only one thread necessary to wait on
> dmevents, which can be started when device-mapper starts, and stopped
> during shutdown, just like the other main threads.
> 
> These patches use device-mapper features that don't have a libdevmapper
> API.  They will switch over as soon as support is available in
> libdevmapper.
> 
> Benjamin Marzinski (12):
>   Unit tests for basenamecpy
>   libmultipath: fix basenamecpy
>   libmultipath: set dm_conf_verbosity
>   multipathd: log thread cleanup
>   libmultipath: fix log_pthread processing
>   multipathd: use nanosleep for strict timing
>   libmultipath: move remove_map waiter code to multipathd
>   move waiter code from libmultipath to multipathd
>   call start_waiter_thread() before setup_multipath()
>   libmultipath: add helper functions
>   multipathd: add new polling dmevents waiter thread
>   multipath: add unit tests for dmevents code
> 
>  Makefile.inc               |   3 +
>  libmultipath/Makefile      |   2 +-
>  libmultipath/devmapper.c   |  29 +-
>  libmultipath/devmapper.h   |   3 +-
>  libmultipath/log_pthread.c |  40 +--
>  libmultipath/log_pthread.h |  10 +-
>  libmultipath/structs_vec.c | 140 +-------
>  libmultipath/structs_vec.h |   8 +-
>  libmultipath/util.c        |  25 +-
>  libmultipath/util.h        |   2 +-
>  libmultipath/vector.c      |  16 +-
>  libmultipath/vector.h      |   1 +
>  libmultipath/waiter.c      | 215 ------------
>  libmultipath/waiter.h      |  17 -
>  multipathd/Makefile        |   6 +-
>  multipathd/dmevents.c      | 392 +++++++++++++++++++++
>  multipathd/dmevents.h      |  13 +
>  multipathd/main.c          | 230 ++++++++++--
>  multipathd/waiter.c        | 215 ++++++++++++
>  multipathd/waiter.h        |  17 +
>  tests/Makefile             |   9 +-
>  tests/dmevents.c           | 847 +++++++++++++++++++++++++++++++++++++++++++++
>  tests/util.c               | 167 +++++++++
>  23 files changed, 1944 insertions(+), 463 deletions(-)
>  delete mode 100644 libmultipath/waiter.c
>  delete mode 100644 libmultipath/waiter.h
>  create mode 100644 multipathd/dmevents.c
>  create mode 100644 multipathd/dmevents.h
>  create mode 100644 multipathd/waiter.c
>  create mode 100644 multipathd/waiter.h
>  create mode 100644 tests/dmevents.c
>  create mode 100644 tests/util.c
> 
> -- 
> 2.7.4
> 
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel

      parent reply	other threads:[~2018-03-15 14:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-14 17:46 [PATCH 00/12] multipath: new and rebased patches Benjamin Marzinski
2018-03-14 17:46 ` [PATCH 01/12] Unit tests for basenamecpy Benjamin Marzinski
2018-03-19  9:49   ` Martin Wilck
2018-03-19 10:05     ` Martin Wilck
2018-03-14 17:46 ` [PATCH 02/12] libmultipath: fix basenamecpy Benjamin Marzinski
2018-03-14 17:46 ` [PATCH 03/12] libmultipath: set dm_conf_verbosity Benjamin Marzinski
2018-03-19 10:18   ` Martin Wilck
2018-03-14 17:46 ` [PATCH 04/12] multipathd: log thread cleanup Benjamin Marzinski
2018-03-19 10:20   ` Martin Wilck
2018-03-14 17:46 ` [PATCH 05/12] libmultipath: fix log_pthread processing Benjamin Marzinski
2018-03-19 10:22   ` Martin Wilck
2018-03-14 17:46 ` [PATCH 06/12] multipathd: use nanosleep for strict timing Benjamin Marzinski
2018-03-19 10:50   ` Martin Wilck
2018-03-14 17:46 ` [PATCH 07/12] libmultipath: move remove_map waiter code to multipathd Benjamin Marzinski
2018-03-19 10:57   ` Martin Wilck
2018-03-14 17:46 ` [PATCH 08/12] move waiter code from libmultipath " Benjamin Marzinski
2018-03-14 17:46 ` [PATCH 09/12] call start_waiter_thread() before setup_multipath() Benjamin Marzinski
2018-03-14 17:46 ` [PATCH 10/12] libmultipath: add helper functions Benjamin Marzinski
2018-03-14 17:46 ` [PATCH 11/12] multipathd: add new polling dmevents waiter thread Benjamin Marzinski
2018-03-19 12:48   ` Martin Wilck
2018-03-14 17:46 ` [PATCH 12/12] multipath: add unit tests for dmevents code Benjamin Marzinski
2018-03-19 12:01   ` Martin Wilck
2018-03-15 14:30 ` Benjamin Marzinski [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180315143030.GJ14513@octiron.msp.redhat.com \
    --to=bmarzins@redhat.com \
    --cc=christophe.varoqui@opensvc.com \
    --cc=dm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox