All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Marzinski <bmarzins@redhat.com>
To: Christophe Varoqui <christophe.varoqui@opensvc.com>
Cc: device-mapper development <dm-devel@redhat.com>,
	Martin Wilck <Martin.Wilck@suse.com>
Subject: [dm-devel] [PATCH v2 0/6] Misc Multipath patches
Date: Wed,  4 Nov 2020 00:54:03 -0600	[thread overview]
Message-ID: <1604472849-22422-1-git-send-email-bmarzins@redhat.com> (raw)

This is a set of unrelated patches, based on top of my previous "add
library to check if device is a valid path" patchset. The first two
patches add a new config option, eh_deadline, that sets the scsi sysfs
value of the same name for scsi path devices. This has been requested by
multiple customers. Patch 0004 is a change to detecting rdac support
requested by Netapp.

Patch 0005 fixes a rare segfault during shutdown, that happens when the
tur DSO is unloaded while the tur thread is still running. The issue is
that unless we make the tur_checker thread joinable, there is no way to
be sure that it isn't still running when the DSO is unloaded. I tried to
fix this in a way that allowed the DSO to get cleaned up. But without
redoing the tur_thread, that was impossible. Even if the cleanup
happened when the tur_thread was running a cleanup handler function from
libmultipath (not the DSO), while in pthread_exit(), which doesn't
return back to the calling fuction, it would segfault.

I realize that there has just been a lot of work done to make sure that
multipathd is cleaning up before exitting that this code is going
against that, but I'm not sure that the cost of redoing the tur_thread
is worth the benefit of being able to unload the DSO. If people feel
strongly that we should always unload the DSO, I can redo this and make
the tur_thread joinable with pthread_tryjoin_np(), and add code to the
checkerloop or uxlsnrloop to join with orphaned tur_threads.  That
should work.

Changes from v1 to v2:
0002: multiple small fixes suggested by Martin
0004: New patch to setup for checking vpd page 0x00. Just refactoring code,
      with not functional changes.
0005 (was 0004): added checking for vpd page 0xc9 in vpd page 0x00, as
                 suggested by Martin
0006 (was 0005): Added version script update


Benjamin Marzinski (6):
  libmultipath: move fast_io_fail defines to structs.h
  libmultipath: add eh_deadline multipath.conf parameter
  multipathd: remove redundant vector_free() int configure
  libmultipath: factor out code to get vpd page data
  libmultipath: limit reading 0xc9 vpd page
  libmultipath: don't dlclose tur checker DSO

 libmultipath/checkers.c           |  10 ++-
 libmultipath/checkers.h           |   1 +
 libmultipath/checkers/tur.c       |   1 +
 libmultipath/config.c             |   2 +
 libmultipath/config.h             |  10 +--
 libmultipath/configure.c          |   1 +
 libmultipath/dict.c               |  40 +++++++-----
 libmultipath/dict.h               |   2 +-
 libmultipath/discovery.c          | 104 ++++++++++++++++++++++++++----
 libmultipath/discovery.h          |   1 +
 libmultipath/libmultipath.version |   5 ++
 libmultipath/propsel.c            |  29 +++++++--
 libmultipath/propsel.h            |   1 +
 libmultipath/structs.h            |  24 +++++++
 multipath/multipath.conf.5        |  16 +++++
 multipathd/main.c                 |   8 +--
 16 files changed, 208 insertions(+), 47 deletions(-)

-- 
2.17.2

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


             reply	other threads:[~2020-11-04  6:57 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-04  6:54 Benjamin Marzinski [this message]
2020-11-04  6:54 ` [dm-devel] [PATCH v2 1/6] libmultipath: move fast_io_fail defines to structs.h Benjamin Marzinski
2020-11-04  6:54 ` [dm-devel] [PATCH v2 2/6] libmultipath: add eh_deadline multipath.conf parameter Benjamin Marzinski
2020-12-16 21:07   ` Martin Wilck
2020-11-04  6:54 ` [dm-devel] [PATCH v2 3/6] multipathd: remove redundant vector_free() int configure Benjamin Marzinski
2020-11-04  6:54 ` [dm-devel] [PATCH v2 4/6] libmultipath: factor out code to get vpd page data Benjamin Marzinski
2020-12-16 21:13   ` Martin Wilck
2020-12-16 23:19     ` Benjamin Marzinski
2020-11-04  6:54 ` [dm-devel] [PATCH v2 5/6] libmultipath: limit reading 0xc9 vpd page Benjamin Marzinski
2020-12-16 21:18   ` Martin Wilck
2020-12-16 23:56     ` Benjamin Marzinski
2020-12-17  0:06       ` Martin Wilck
2020-11-04  6:54 ` [dm-devel] [PATCH v2 6/6] libmultipath: don't dlclose tur checker DSO Benjamin Marzinski

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=1604472849-22422-1-git-send-email-bmarzins@redhat.com \
    --to=bmarzins@redhat.com \
    --cc=Martin.Wilck@suse.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 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.