All of lore.kernel.org
 help / color / mirror / Atom feed
* [dm-devel] [PATCH 0/2] multipath cleanup patches
@ 2021-01-05  3:59 Benjamin Marzinski
  2021-01-05  3:59 ` [dm-devel] [PATCH 1/2] libmultipath: check for null wwid before strcmp Benjamin Marzinski
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Benjamin Marzinski @ 2021-01-05  3:59 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: device-mapper development, Martin Wilck

These patches are cleanups that Martin mentioned for my last patchset.
The first is some code that should have been in patch 4/6 (libmultipath:
ignore multipaths sections without wwid option). The second is V2 of
patch 6/6 (multipath.conf.5: Improve checker_timeout description), which
was updated based on Martin's comments.

Benjamin Marzinski (2):
  libmultipath: check for null wwid before strcmp
  multipath.conf.5: Improve checker_timeout description

 libmultipath/config.c      |  2 +-
 multipath/multipath.conf.5 | 20 ++++++++++++--------
 2 files changed, 13 insertions(+), 9 deletions(-)

-- 
2.17.2

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


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

* [dm-devel] [PATCH 1/2] libmultipath: check for null wwid before strcmp
  2021-01-05  3:59 [dm-devel] [PATCH 0/2] multipath cleanup patches Benjamin Marzinski
@ 2021-01-05  3:59 ` Benjamin Marzinski
  2021-01-05  3:59 ` [dm-devel] [PATCH 2/2] multipath.conf.5: Improve checker_timeout description Benjamin Marzinski
  2021-01-05 10:57 ` [dm-devel] [PATCH 0/2] multipath cleanup patches Martin Wilck
  2 siblings, 0 replies; 4+ messages in thread
From: Benjamin Marzinski @ 2021-01-05  3:59 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: device-mapper development, Martin Wilck

Commit 749aabd0 (libmultipath: ignore multipaths sections without wwid
option) removed all mpentries with a NULL wwid, but didn't stop strcmp()
from being run on them in merge_mptable(). The result of strcmp() with
a NULL parameter is undefined, so fix that.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
 libmultipath/config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libmultipath/config.c b/libmultipath/config.c
index a643703e..be310159 100644
--- a/libmultipath/config.c
+++ b/libmultipath/config.c
@@ -518,7 +518,7 @@ void merge_mptable(vector mptable)
 		}
 		j = i + 1;
 		vector_foreach_slot_after(mptable, mp2, j) {
-			if (strcmp(mp1->wwid, mp2->wwid))
+			if (!mp2->wwid || strcmp(mp1->wwid, mp2->wwid))
 				continue;
 			condlog(1, "%s: duplicate multipath config section for %s",
 				__func__, mp1->wwid);
-- 
2.17.2

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


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

* [dm-devel] [PATCH 2/2] multipath.conf.5: Improve checker_timeout description
  2021-01-05  3:59 [dm-devel] [PATCH 0/2] multipath cleanup patches Benjamin Marzinski
  2021-01-05  3:59 ` [dm-devel] [PATCH 1/2] libmultipath: check for null wwid before strcmp Benjamin Marzinski
@ 2021-01-05  3:59 ` Benjamin Marzinski
  2021-01-05 10:57 ` [dm-devel] [PATCH 0/2] multipath cleanup patches Martin Wilck
  2 siblings, 0 replies; 4+ messages in thread
From: Benjamin Marzinski @ 2021-01-05  3:59 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: device-mapper development, Martin Wilck

I was asked to explain how checker_timeout works for checkers like
directio, that don't issue scsi commands with an explicit timeout.
Also, undeprecate the directio checker.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
 multipath/multipath.conf.5 | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
index ea66a01e..8ef3a747 100644
--- a/multipath/multipath.conf.5
+++ b/multipath/multipath.conf.5
@@ -472,8 +472,12 @@ The default is: \fB<unset>\fR
 .
 .TP
 .B path_checker
-The default method used to determine the paths state. Possible values
-are:
+The default method used to determine the path's state. The synchronous
+checkers (all except \fItur\fR and \fIdirectio\fR) will cause multipathd to
+pause most activity, waiting up to \fIchecker_timeout\fR seconds for the path
+to respond. The asynchronous checkers (\fItur\fR and \fIdirectio\fR) will not
+pause multipathd. Instead, multipathd will check for a response once per
+second, until \fIchecker_timeout\fR seconds have elapsed. Possible values are:
 .RS
 .TP 12
 .I readsector0
@@ -499,10 +503,8 @@ Check the path state for LSI/Engenio/NetApp RDAC class as NetApp SANtricity E/EF
 Series, and OEM arrays from IBM DELL SGI STK and SUN.
 .TP
 .I directio
-(Deprecated) Read the first sector with direct I/O. If you have a large number
-of paths, or many AIO users on a system, you may need to use sysctl to
-increase fs.aio-max-nr. This checker is being deprecated, it could cause
-spurious path failures under high load. Please use \fItur\fR instead.
+Read the first sector with direct I/O. This checker could cause spurious path
+failures under high load. Increasing \fIchecker_timeout\fR can help with this.
 .TP
 .I cciss_tur
 (Hardware-dependent)
@@ -639,8 +641,10 @@ The default is: \fBno\fR
 .
 .TP
 .B checker_timeout
-Specify the timeout to use for path checkers and prioritizers that issue SCSI
-commands with an explicit timeout, in seconds.
+Specify the timeout to use for path checkers and prioritizers, in seconds.
+Only prioritizers that issue scsi commands use checker_timeout.  If a path
+does not respond to the checker command after \fIchecker_timeout\fR
+seconds have elapsed, it is considered down.
 .RS
 .TP
 The default is: in \fB/sys/block/sd<x>/device/timeout\fR
-- 
2.17.2

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


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

* Re: [dm-devel] [PATCH 0/2] multipath cleanup patches
  2021-01-05  3:59 [dm-devel] [PATCH 0/2] multipath cleanup patches Benjamin Marzinski
  2021-01-05  3:59 ` [dm-devel] [PATCH 1/2] libmultipath: check for null wwid before strcmp Benjamin Marzinski
  2021-01-05  3:59 ` [dm-devel] [PATCH 2/2] multipath.conf.5: Improve checker_timeout description Benjamin Marzinski
@ 2021-01-05 10:57 ` Martin Wilck
  2 siblings, 0 replies; 4+ messages in thread
From: Martin Wilck @ 2021-01-05 10:57 UTC (permalink / raw)
  To: bmarzins, christophe.varoqui; +Cc: dm-devel

On Mon, 2021-01-04 at 21:59 -0600, Benjamin Marzinski wrote:
> These patches are cleanups that Martin mentioned for my last
> patchset.
> The first is some code that should have been in patch 4/6
> (libmultipath:
> ignore multipaths sections without wwid option). The second is V2 of
> patch 6/6 (multipath.conf.5: Improve checker_timeout description),
> which
> was updated based on Martin's comments.
> 
> Benjamin Marzinski (2):
>   libmultipath: check for null wwid before strcmp
>   multipath.conf.5: Improve checker_timeout description
> 
>  libmultipath/config.c      |  2 +-
>  multipath/multipath.conf.5 | 20 ++++++++++++--------
>  2 files changed, 13 insertions(+), 9 deletions(-)
> 

For the set:

Reviewed-by: Martin Wilck <mwilck@suse.com>

-- 
Dr. Martin Wilck <mwilck@suse.com>, Tel. +49 (0)911 74053 2107
SUSE Software Solutions Germany GmbH
HRB 36809, AG Nürnberg GF: Felix Imendörffer



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


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

end of thread, other threads:[~2021-01-05 10:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-05  3:59 [dm-devel] [PATCH 0/2] multipath cleanup patches Benjamin Marzinski
2021-01-05  3:59 ` [dm-devel] [PATCH 1/2] libmultipath: check for null wwid before strcmp Benjamin Marzinski
2021-01-05  3:59 ` [dm-devel] [PATCH 2/2] multipath.conf.5: Improve checker_timeout description Benjamin Marzinski
2021-01-05 10:57 ` [dm-devel] [PATCH 0/2] multipath cleanup patches Martin Wilck

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.