On 03/06/2018 12:15 AM, Martin Wilck wrote:
> multipathd is supposed to block all signals in all threads, except
> the uxlsnr thread which handles termination and reconfiguration
> signals (SIGUSR1) in its ppoll() call, SIGUSR2 in the waiter thread
> and the marginal path checker thread, and
On 03/06/2018 12:15 AM, Martin Wilck wrote:
> The previous patch "libmultipath: don't update path groups when printing"
> removed the call to path_group_prio_update() in the printing code path.
> To compensate for that, recalculate path group prio also when it's not
> strictly necessary (i.e. if
On 03/06/2018 12:15 AM, Martin Wilck wrote:
> Call into the foreign library code when paths are discovered, uevents
> are received, and in the checker loop. Furthermore, use the foreign
> code to print information in the "multipathd show paths", "multipathd
> show maps", and "multipathd show
On 03/06/2018 12:15 AM, Martin Wilck wrote:
> implement display of path information for NVMe foreign paths and maps.
> With this patch, I get output like this for Linux NVMe soft targets:
>
> nvme-submultipathd show topology
> sys0:NQN:subsysname (uuid.96926ba3-b207-437c-902c-4a4df6538c3f) [nvme]
On 03/06/2018 12:15 AM, Martin Wilck wrote:
> Use the "foreign" code to print information about multipath maps
> owned by foreign libraries in print mode (multipath -ll, -l).
>
> Signed-off-by: Martin Wilck
> ---
> multipath/main.c | 13 +
> 1 file changed, 13
On 03/06/2018 12:15 AM, Martin Wilck wrote:
> This actually enables the use of foreign paths.
>
> Signed-off-by: Martin Wilck
> ---
> libmultipath/discovery.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
Reviewed-by: Hannes Reinecke
Cheers,
On 03/06/2018 12:15 AM, Martin Wilck wrote:
> This adds a format field to identify foreign maps as such, and
> uses it in default-formatted topology output (generic_style()).
>
> Signed-off-by: Martin Wilck
> Reviewed-by: Benjamin Marzinski
> ---
>
On 03/06/2018 12:15 AM, Martin Wilck wrote:
> This still contains stubs for path handling and checking, but it's functional
> for printing already.
>
> Signed-off-by: Martin Wilck
> ---
> Makefile | 1 +
> libmultipath/foreign/Makefile | 30 +++
>
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Add an API for "foreign" multipaths. Foreign libraries are loaded
> from ${multipath_dir}/libforeign-*.so, as we do for checkers.
>
> Refer to "foreign.h" for details about the API itself. Like we do for
> checkers, high-level multipath code isn't
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Introduce new functions _get_path_layout and _get_multipath_layout
> using the new "generic" API to determine field widths, and map the
> old API to them.
>
> Furthermore, replace the boolean "header" by an enum with 3 possible
> values. The new value
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> This patch adds a simplified abstract interface to the multipath data
> structures.
> The idea is to allow "foreign" data structures to be treated by libmultipath
> if they implement the same interface. Currently, the intention is to use this
> only
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Convert higher level API (snprint_multipath_topology() etc) to
> using the generic multipath API. This will allow "foreign"
> multipath objects that implement the generic API to be printed
> exactly like native multipathd objects.
>
> The previous API
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> This is a handy helper for creating one vector from another,
> mapping each element of the origin vector to an element of
> the target vector with a given conversion function. It can
> also be used to "concatenate" vectors by passing in a non-NULL
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Casting "const" away is often an indicator for wrong code.
> Add a compiler flag to warn about such possible breakage.
>
> Signed-off-by: Martin Wilck
> Reviewed-by: Benjamin Marzinski
> ---
> Makefile.inc | 1
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Improve use of "const" qualifiers in libmultipath's devmapper code.
>
> Signed-off-by: Martin Wilck
> Reviewed-by: Benjamin Marzinski
> ---
> libmultipath/devmapper.c | 32
>
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Fix the warnings that were caused by adding the -Wcast-qual compiler
> flag in the previous patch.
>
> Signed-off-by: Martin Wilck
> Reviewed-by: Benjamin Marzinski
> ---
> kpartx/devmapper.c | 3 ++-
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> ... to dispose of constant vectors (const struct _vector*).
>
> Signed-off-by: Martin Wilck
> Reviewed-by: Benjamin Marzinski
> ---
> libmultipath/vector.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Convert the print.h/print.c code to use "const" qualifiers
> properly. This is generally considered good programming practice,
> and the printing code shouldn't change any objects anyway.
>
> Signed-off-by: Martin Wilck
>
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Updating the prio values for printing makes no sense. The user wants to see
> the prio values multipath is actually using for path group selection, and
> updating the values here means actually lying to the user if the prio values
> have changed, but
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Convert the snprint methods for all keywords to call-by-value,
> and use "const" qualifier for the "data" argument. This makes sure
> that "snprint" type functions don't modify the data they're print,
> helps compile-time correctness checking, and
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Signed-off-by: Martin Wilck
> Reviewed-by: Benjamin Marzinski
> ---
> libmultipath/print.c | 26 --
> libmultipath/print.h | 5 -
> 2 files changed, 31 deletions(-)
>
Reviewed-by:
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> Otherwise the binaries won't be re-linked if the libraries change.
>
> Signed-off-by: Martin Wilck
> Reviewed-by: Benjamin Marzinski
> ---
> multipath/Makefile | 2 +-
> multipathd/Makefile | 2 +-
> 2 files
On 03/06/2018 12:14 AM, Martin Wilck wrote:
> By properly linking the path groups with their parent multipath,
> we don't need this "hack" any more.
>
> Signed-off-by: Martin Wilck
> Reviewed-by: Benjamin Marzinski
> ---
> libmultipath/dmparser.c | 2 +-
On Mon, Mar 05 2018 at 10:35pm -0500,
Wang Sheng-Hui wrote:
> Dear,
>
> Sorry to trouble you.
>
> I noticed some code in dm-*.c like:
> "
> static int multipath_prepare_ioctl(struct dm_target *ti,
> struct block_device **bdev, fmode_t *mode)
> {
> ...
>
The same LUN have been exported to the host from different lun
number twice, each time create multipath for this lun, after
second time the multipath might have zombie paths which devices
doesn't actually exist.
Check zombie paths:
If a failed path have the same wwid with an active path, but its
In order to safely use SIGALRM in a multi-threaded program, only one
thread can schedule and wait on SIGALRM at a time. All other threads
must have SIGALRM blocked, and be unable to schedule an alarm. The
strict_timing code in checkerloop was unblocking SIGALRM, and calling
setitimer(), without
On Tue, 2018-03-06 at 00:14 +0100, Martin Wilck wrote:
> ... to dispose of constant vectors (const struct _vector*).
This patch is not useful by itself so if you repost this series please
combine it with the next patch.
Thanks,
Bart.
--
dm-devel mailing list
dm-devel@redhat.com
On Mon, Mar 05, 2018 at 06:28:05PM +0100, Martin Wilck wrote:
> Hello Bart,
>
> On Mon, 2018-03-05 at 16:27 +, Bart Van Assche wrote:
> > On Sat, 2018-03-03 at 01:31 +0100, Martin Wilck wrote:
> > > So, there's no reason not to block them, right? Is it expected
> > > behavior
> > > that a
This actually enables the use of foreign paths.
Signed-off-by: Martin Wilck
---
libmultipath/discovery.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
index 645224c1029c..45a4d8378893 100644
---
Improve use of "const" qualifiers in libmultipath's devmapper code.
Signed-off-by: Martin Wilck
Reviewed-by: Benjamin Marzinski
---
libmultipath/devmapper.c | 32
libmultipath/devmapper.h | 16
2 files
On Tue, 2018-03-06 at 00:24 +0100, Martin Wilck wrote:
> On Mon, 2018-03-05 at 21:13 +, Bart Van Assche wrote:
> > Yes. "PATCH v2 00/20] Various multipath-tools fixes" ff.
> > > https://www.redhat.com/archives/dm-devel/2018-January/msg00219.ht
> > > ml
> >
> > Ah, thanks, but unfortunately
On Mon, 2018-03-05 at 21:13 +, Bart Van Assche wrote:
> On Mon, 2018-03-05 at 21:47 +0100, Martin Wilck wrote:
> > On Mon, 2018-03-05 at 19:18 +, Bart Van Assche wrote:
> > > On Mon, 2018-03-05 at 20:14 +0100, Martin Wilck wrote:
> > > > Unless you object, I'll repost your series rebased
Hello Christophe,
This patch series adds limited support for "foreign" multipath devices
to multipath and multipathd, and implements the respective API for
"native" NVMe multipath devices. The implementation is done using
a shared library approach similar to checkers, so other non-dm multipath
Convert the snprint methods for all keywords to call-by-value,
and use "const" qualifier for the "data" argument. This makes sure
that "snprint" type functions don't modify the data they're print,
helps compile-time correctness checking, and allows more proper
"const" cleanups in the future.
This is a handy helper for creating one vector from another,
mapping each element of the origin vector to an element of
the target vector with a given conversion function. It can
also be used to "concatenate" vectors by passing in a non-NULL first
argument.
Signed-off-by: Martin Wilck
This still contains stubs for path handling and checking, but it's functional
for printing already.
Signed-off-by: Martin Wilck
---
Makefile | 1 +
libmultipath/foreign/Makefile | 30 +++
libmultipath/foreign/nvme.c | 455
This patch adds a simplified abstract interface to the multipath data
structures.
The idea is to allow "foreign" data structures to be treated by libmultipath
if they implement the same interface. Currently, the intention is to use this
only to provide formatted output about from this interface.
Call into the foreign library code when paths are discovered, uevents
are received, and in the checker loop. Furthermore, use the foreign
code to print information in the "multipathd show paths", "multipathd
show maps", and "multipathd show topology" client commands.
We don't support foreign data
Use the "foreign" code to print information about multipath maps
owned by foreign libraries in print mode (multipath -ll, -l).
Signed-off-by: Martin Wilck
---
multipath/main.c | 13 +
1 file changed, 13 insertions(+)
diff --git a/multipath/main.c b/multipath/main.c
Convert the print.h/print.c code to use "const" qualifiers
properly. This is generally considered good programming practice,
and the printing code shouldn't change any objects anyway.
Signed-off-by: Martin Wilck
Reviewed-by: Benjamin Marzinski
---
This adds a format field to identify foreign maps as such, and
uses it in default-formatted topology output (generic_style()).
Signed-off-by: Martin Wilck
Reviewed-by: Benjamin Marzinski
---
libmultipath/generic.c | 2 +-
libmultipath/print.c | 14
By properly linking the path groups with their parent multipath,
we don't need this "hack" any more.
Signed-off-by: Martin Wilck
Reviewed-by: Benjamin Marzinski
---
libmultipath/dmparser.c | 2 +-
libmultipath/pgpolicies.c | 11 ++-
multipathd is supposed to block all signals in all threads, except
the uxlsnr thread which handles termination and reconfiguration
signals (SIGUSR1) in its ppoll() call, SIGUSR2 in the waiter thread
and the marginal path checker thread, and occasional SIGALRM. The current
logic does exactly the
Convert higher level API (snprint_multipath_topology() etc) to
using the generic multipath API. This will allow "foreign"
multipath objects that implement the generic API to be printed
exactly like native multipathd objects.
The previous API (using "struct multipath*" and "struct path" remains
in
Otherwise the binaries won't be re-linked if the libraries change.
Signed-off-by: Martin Wilck
Reviewed-by: Benjamin Marzinski
---
multipath/Makefile | 2 +-
multipathd/Makefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git
Casting "const" away is often an indicator for wrong code.
Add a compiler flag to warn about such possible breakage.
Signed-off-by: Martin Wilck
Reviewed-by: Benjamin Marzinski
---
Makefile.inc | 1 +
1 file changed, 1 insertion(+)
diff --git
Updating the prio values for printing makes no sense. The user wants to see
the prio values multipath is actually using for path group selection, and
updating the values here means actually lying to the user if the prio values
have changed, but multipathd hasn't updated them internally.
If we
... to dispose of constant vectors (const struct _vector*).
Signed-off-by: Martin Wilck
Reviewed-by: Benjamin Marzinski
---
libmultipath/vector.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/libmultipath/vector.h b/libmultipath/vector.h
index
implement display of path information for NVMe foreign paths and maps.
With this patch, I get output like this for Linux NVMe soft targets:
nvme-submultipathd show topology
sys0:NQN:subsysname (uuid.96926ba3-b207-437c-902c-4a4df6538c3f) [nvme] nvme0n1
NVMe,Linux,4.15.0-r
size=2097152
Signed-off-by: Martin Wilck
Reviewed-by: Benjamin Marzinski
---
libmultipath/print.c | 26 --
libmultipath/print.h | 5 -
2 files changed, 31 deletions(-)
diff --git a/libmultipath/print.c b/libmultipath/print.c
index
The previous patch "libmultipath: don't update path groups when printing"
removed the call to path_group_prio_update() in the printing code path.
To compensate for that, recalculate path group prio also when it's not
strictly necessary (i.e. if failback "manual" is set).
Signed-off-by: Martin
On Mon, 2018-03-05 at 21:47 +0100, Martin Wilck wrote:
> On Mon, 2018-03-05 at 19:18 +, Bart Van Assche wrote:
> > On Mon, 2018-03-05 at 20:14 +0100, Martin Wilck wrote:
> > > Unless you object, I'll repost your series rebased on mine.
> >
> > Hello Martin,
> >
> > Before you start working
On Mon, 2018-03-05 at 19:18 +, Bart Van Assche wrote:
> On Mon, 2018-03-05 at 20:14 +0100, Martin Wilck wrote:
> > Unless you object, I'll repost your series rebased on mine.
>
> Hello Martin,
>
> Before you start working on that: has your patch series already been
> posted
> on the dm-devel
On Mon, 2018-03-05 at 20:14 +0100, Martin Wilck wrote:
> Unless you object, I'll repost your series rebased on mine.
Hello Martin,
Before you start working on that: has your patch series already been posted
on the dm-devel mailing list?
Thanks,
Bart.
--
dm-devel mailing list
On Mon, 2018-03-05 at 18:09 +0100, Martin Wilck wrote:
> On Mon, 2018-03-05 at 17:53 +0100, Martin Wilck wrote:
> > On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> > > Pass the VPD page number to sgio_get_vpd() such that the page
> > > needed
> > > by the caller is queried instead of
On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> Avoid that the strchr() call in this function examines uninitialized
> data on the stack. This patch avoids that Coverity reports the
> following:
>
> CID 173252: Error handling issues (CHECKED_RETURN)
> "read(int, void *,
On Tue, 2018-02-27 at 08:34 +, Chongyun Wu wrote:
> enable feature disable changed wwid by default.
>
> Signed-off-by: Chongyun Wu
> ---
Acked-by: Martin Wilck
> libmultipath/defaults.h |2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>
Hello Bart,
On Mon, 2018-03-05 at 16:27 +, Bart Van Assche wrote:
> On Sat, 2018-03-03 at 01:31 +0100, Martin Wilck wrote:
> > So, there's no reason not to block them, right? Is it expected
> > behavior
> > that a user running 'kill -USR2 $(pidof multipathd)' terminates the
> > process? Why
On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> This patch avoids that Coverity reports the following for the code
> in libmultipath/prioritizers/alua_rtpg.c:
>
>CID 173256: Integer handling issues (SIGN_EXTENSION)
> Suspicious implicit sign extension: "buf[0]" with type
On Mon, 2018-03-05 at 17:53 +0100, Martin Wilck wrote:
> On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> > Pass the VPD page number to sgio_get_vpd() such that the page
> > needed
> > by the caller is queried instead of page 0x83. Fix the statement
> > that
> > computes the length of
On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> Pass the VPD page number to sgio_get_vpd() such that the page needed
> by the caller is queried instead of page 0x83. Fix the statement that
> computes the length of the page returned by do_inq(). Fix the return
> code check in the caller
On Sat, 2018-03-03 at 01:31 +0100, Martin Wilck wrote:
> So, there's no reason not to block them, right? Is it expected behavior
> that a user running 'kill -USR2 $(pidof multipathd)' terminates the
> process? Why do you think these signals should interrupt ppoll()
> although the uxlsnr can't
On Mon, 2018-03-05 at 17:18 +0100, Martin Wilck wrote:
> On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> > Since the third argument of this function is not modified inside that
> > function, declare it const.
> >
> > Signed-off-by: Bart Van Assche
>
> ACK,
On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> Since the third argument of this function is not modified inside that
> function, declare it const.
>
> Signed-off-by: Bart Van Assche
ACK, but this hunk is part of my previously posted patch "libmultipath:
On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> Discovered by Coverity (CID 173257).
>
> Signed-off-by: Bart Van Assche
Reviewed-by: Martin Wilck
> ---
> libmultipath/discovery.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
On Thu, 2018-03-01 at 11:29 -0800, Bart Van Assche wrote:
> This patch avoids that gcc reports the following:
>
> main.c: In function 'uev_pathfail_check':
> main.c:1022:5: warning: this 'if' clause does not guard... [-
> Wmisleading-indentation]
> if (!pp)
> ^~
> main.c:1024:2: note:
From: Xose Vazquez Perez
[ Upstream commit 4b3aec2bbbce1c35f50e7475a9fd78d24b9ea4ea ]
Add IBM 3542 and 3552, arrays: FAStT200 and FAStT500.
Add full STK OPENstorage family, arrays: 9176, D173, D178, D210, D220,
D240 and D280.
Add STK BladeCtlr family, arrays: B210,
From: Xose Vazquez Perez
[ Upstream commit 4b3aec2bbbce1c35f50e7475a9fd78d24b9ea4ea ]
Add IBM 3542 and 3552, arrays: FAStT200 and FAStT500.
Add full STK OPENstorage family, arrays: 9176, D173, D178, D210, D220,
D240 and D280.
Add STK BladeCtlr family, arrays: B210,
From: Xose Vazquez Perez
[ Upstream commit 4b3aec2bbbce1c35f50e7475a9fd78d24b9ea4ea ]
Add IBM 3542 and 3552, arrays: FAStT200 and FAStT500.
Add full STK OPENstorage family, arrays: 9176, D173, D178, D210, D220,
D240 and D280.
Add STK BladeCtlr family, arrays: B210,
69 matches
Mail list logo