<div dir="ltr">Here is the patchset merged so far.<div><br></div><div><div>e0c1b55e171373d9efbde43502a9c87fdb53f0ef Allow specific CLI commands to run unlocked</div><div>5ed6122c0e5d8326bc0f3beaf1f5de7303986952 multipathd: push down lock in checkerloop()</div><div>5aca183c68f7ada6fd38c866e235abc690e24328 multipathd: asynchronous configuration</div><div>996b564931e92b5864a3e740b6b5198d69be17da multipathd: Increase uxclnt timeout</div><div>c50c729f6c72df0c164e42bde1cc94114c6c06ea multipathd: implement 'show map $map format $fmt'</div><div>c263e76be2f83bfb94f8aecd47a3e345c2d79fc6 libmultipath: make 'dm_addmap' static</div><div>2c9c69956431f07942c4ca71d9f1d779982d62ac multipathd: Provide standard error description on cli failure</div><div>5007e197c55d8a287ac5ec84c1f13aef7a7a08db multipathd: strict loop timings</div><div>c0db476f2b0d92b3ab4ea5007242122fdbb103dc dmparser: Use find_path_by_dev()</div><div>18f1b0341f321f9326e08b940b3c1eed4a31d779 libmultipath: sanity check on store_path()</div><div>3ede290fd5267176860212483f9eaad48a5e5ca8 libmultipath: ensure 'dev_t' is set when store paths</div><div>1be502f61f92b93ab8eb1c3d84e2c19423408787 libmultipath: remove 'get_info' argument for adopt_paths()</div><div>d87f3055b465743d00d6cae3f4d53c4cc171f2ab multipathd: Do not switch paths on empty multipath tables</div><div>c6db07310a4c63b65a758892de187837bb381572 multipathd: set uxsock_timeout after reconfiguration</div><div>a5b3c5561fd5300046d72f7ce4b414e8acce8547 Use multipath wwid if path wwid is empty</div><div>0c833dd35e98da8e6a58c8a50ae6a08cd0e07e20 multipathd: accept zero-size paths in ev_add_path()</div><div>26c4bb0f89ba9bb15e6f1873799a762e6e5078a7 Always set DM_UDEV_DISABLE_LIBRARY_FALLBACK</div><div>a632ef41d98b4369e105ab630ffa2679a98014d3 libmultipath: remove 'use_uuid' argument from dm_addmap()</div><div>74cbb841cec6273243d3949b277adb2430a9d6aa libmultipath: remove 'needsync' argument from dm_simplecmd_noflush</div><div>6e14b7b54de497405878ad92c60813bf14cd4fd8 multipathd: improve uxlsnr</div><div>42539b051468bd442f5f0365b178cd9530da12f3 multipathd: skip uninitialized devices during reconfiguration</div><div>10bd53368193cc009bdf6e52f9f01fb9ced98045 Only filter for udev property if uid_attribute is present</div><div>5ec07b3af8d1c3a6c7ba1680af20b80ddce4f962 libmultipath: use a shared lock to co-operate with udev</div><div>cc37c9941a2e343b0bf58c8dfef28dab3634be6f Ensure multipathd is started before systemd-udev-trigger.service</div><div>286749f8ba07e198ad314f0d6a4d1afe4ecd7332 11-dm-mpath.rules: Only import ID_FS_XXX variables if not set</div><div>85398f6c8f91e8e4d1a2d0fad0d603aa5521ec26 Load all device handler modules on startup</div><div>2ccc1a70f294e9d143b78864a943e419d93a7ea0 Add dependency on systemd-udevd.service</div><div>3f05ebe105464ed520397d5dd8b5448338111f5e libmultipath: avoid double semicolon in lock.h<br></div><div>505227acb951dc0ad063d2322036cd894b9556ab multipathd: Do not print misleading message 'not found in pathvec'</div><div>4cdbd2990f42431b9c19866e62d2ddd723697487 libmpathpersist: Fixup whitespaces in Makefile</div><div>cb7e5658c2626b9db70528255d419d8a6ba89601 libmultipath: additional logging messages when formatting callout</div><div>79f88dd35ab1be62f7e7d33c281a477e5346c2c3 libmultipath: call get_uid() for all paths</div><div>6903495e748d938d8c109bd3b9e4ad6ba4004049 libmultipath: correctly display checker status</div><div>b4d9ca8dc8bbfbd3782bf4cf2cb1a440685ccd07 libmultipath: correctly initialize pp->sg_id</div><div>d291112dd24fe4eff70dfd50ca817146fc100936 multipathd: print error message for invalid arguments</div><div>42f490c62b066235693a1176204fa1712456fd4d multipathd: fixup a crash when invoking CLI commands</div><div>2516c4f1dd5c85799fff3d5c7cb5de54dece88ba multipathd: fixup queueing mode in 'show maps status'</div><div>ccf6e5316a7cd090bfa2ba4c542859f55e20c8d9 libmultipath: finally fix dev_loss_tmo setting</div><div>8af1770fcdd9ebbd6bcb29baa49f6d0de1b1b700 libmultipath: Do not use 'sscanf' for parsing integers</div><div>b4e1b5242355908fcb1bd461efb2851a0b41dba7 Allow for empty SCSI revision</div><div>6fe55f63b5a95eb9d4da5e32115e1629784619af Add LIO-ORG/SUSE RBD backend hardware defaults</div><div>21136f36a38ce761a76797a2434c4fbbcbc89830 Add HP MSA 2040 to the hardware table</div><div>c416b69808e5bc80bfb4788e3d5309c6d5b4b5b5 kpartx: Install rules file with correct prefix</div><div>adfc5ad9713ba58d44e2d50ed8725f6a72127239 kpartx: parse emulated DASD devices</div><div>0d83956858a946817cd09b818d70de010f7bdd76 kpartx: handle more than 256 loop devices</div><div>08cc0ccd943b35c0aaedac44632dc8056f451f41 kpartx: Fixup persistent name generation</div></div><div><br></div><div><div>4628ca72bf953a26bc3580daa61e06ec1fbf4fa1 multipath: remove warning 'failed to get wwid'</div><div>is replaced with:<br></div><div>01b0f396797f008b63fc244aee2b7c79e9a0f41e multipath: move the warning 'failed to get wwid' to lvl4 verbosity</div></div><div><br></div><div>Thanks.</div><div>Christophe</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 27, 2016 at 1:10 PM, Hannes Reinecke <span dir="ltr"><<a href="mailto:hare@suse.de" target="_blank">hare@suse.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
as promised several times, here's now a patchset with all the patches<br>
queued up in my SLES repository.<br>
<br>
The first bits are pretty much uncontroversial (I hope), mainly fixes<br>
etc. Next there are some systemd updates, setting dependencies and such.<br>
<br>
The _really_ important patch is<br>
<br>
multipathd: skip uninitialized devices during reconfiguration<br>
<br>
which basically is the cause for all the missing wwid issues we've seen.<br>
So I wonder if we shouldn't just do away with all the tweaks we've<br>
accumlated so far and see if that patch isn't sufficient.<br>
According to Kay Sievers it should...<br>
<br>
Next is a general overhaul of the 'cookie' mechanism; Ben, Mike,<br>
mind to have a look here? It _seems_ reasonable enough, but it would<br>
be nice to have additional confirmation for that.<br>
<br>
Finally there are patches which probably require some more discussion:<br>
- Asynchronous configuration: Do not call 'reconfigure' directly, but<br>
  rather set the daemon_status to 'configuration' and defer the actual<br>
  work to the main thread. This allows us to decouple it from the CLI<br>
  call, and we won't run into any udev/systemd timeout issues when<br>
  booting on large installations<br>
- Lock pushdown: I remember to have sent this patch already at one<br>
  point, but it got rejected. So I try again :-)<br>
  With this patch the big vector lock is pushed down to the areas<br>
  where we actually need it, making the entire system running far<br>
  smoother during booting or failover in large instances.<br>
  We have been using this patch since SLE12 GA, ie for over two<br>
  years now. And seem to have ironed out all issues with it.<br>
<br>
The entire patchset can be found at:<br>
<br>
github.com:/hreinecke/multipath-tools.git<br>
branch sles-resync<br>
<br>
As usual, comments and reviews are welcome.<br>
Patches are based upon the latest git, including Bens patchset.<br>
<br>
Hannes Reinecke (57):<br>
  kpartx: Fixup persistent name generation<br>
  kpartx: handle more than 256 loop devices<br>
  kpartx: parse emulated DASD devices<br>
  kpartx: Install rules file with correct prefix<br>
  Add HP MSA 2040 to the hardware table<br>
  Use ALUA for HP 3PAR<br>
  Add LIO-ORG/SUSE RBD backend hardware defaults<br>
  Allow for empty SCSI revision<br>
  libmultipath: Do not use 'sscanf' for parsing integers<br>
  libmultipath: finally fix dev_loss_tmo setting<br>
  multipathd: fixup queueing mode in 'show maps status'<br>
  multipathd: fixup a crash when invoking CLI commands<br>
  multipathd: print error message for invalid arguments<br>
  libmultipath: correctly initialize pp->sg_id<br>
  libmultipath: correctly display checker status<br>
  libmultipath: call get_uid() for all paths<br>
  libmultipath: additional logging messages when formatting callout<br>
  libmpathpersist: Fixup whitespaces in Makefile<br>
  multipathd: Do not print misleading message 'not found in pathvec'<br>
  multipathd: Do not update the paths vec when removing paths<br>
  libmultipath: avoid double semicolon in lock.h<br>
  multipath: use option '-i' when called from udev<br>
  multipath: remove warning 'failed to get wwid'<br>
  Add dependency on systemd-udevd.service<br>
  Load all device handler modules on startup<br>
  11-dm-mpath.rules: Only import ID_FS_XXX variables if not set<br>
  Ensure multipathd is started before systemd-udev-trigger.service<br>
  libmultipath: use a shared lock to co-operate with udev<br>
  Only filter for udev property if uid_attribute is present<br>
  multipathd: skip uninitialized devices during reconfiguration<br>
  multipathd: improve uxlsnr<br>
  libmultipath: remove 'needsync' argument from dm_simplecmd_noflush<br>
  libmultipath: remove 'use_uuid' argument from dm_addmap()<br>
  Always set DM_UDEV_DISABLE_LIBRARY_FALLBACK<br>
  libmultipath: pass in cookie as argument for dm_simplecmd()<br>
  libmultipath: pass in 'cookie' as argument for dm_addmap()<br>
  Remove 'udev_sync' argument from dm_simplecmd()<br>
  libmultipath: Fixup 'DM_DEVICE_RELOAD' handling<br>
  devmapper: do not flush I/O for DM_DEVICE_CREATE<br>
  libmultipath: fixup dm_rename to complete cookie on failure<br>
  multipathd: accept zero-size paths in ev_add_path()<br>
  Use multipath wwid if path wwid is empty<br>
  multipathd: set uxsock_timeout after reconfiguration<br>
  multipathd: Do not switch paths on empty multipath tables<br>
  libmultipath: remove 'get_info' argument for adopt_paths()<br>
  libmultipath: ensure 'dev_t' is set when store paths<br>
  libmultipath: sanity check on store_path()<br>
  dmparser: Use find_path_by_dev()<br>
  multipathd: do not flush maps on startup<br>
  multipathd: strict loop timings<br>
  multipathd: Provide standard error description on cli failure<br>
  libmultipath: make 'dm_addmap' static<br>
  multipathd: implement 'show map $map format $fmt'<br>
  multipathd: Increase uxclnt timeout<br>
  multipathd: asynchronous configuration<br>
  multipathd: push down lock in checkerloop()<br>
  Allow specific CLI commands to run unlocked<br>
<br>
 kpartx/Makefile               |   6 +-<br>
 kpartx/dasd.c                 |  39 +++-<br>
 kpartx/dasd.h                 |   1 +<br>
 kpartx/kpartx.rules           |  11 +-<br>
 kpartx/kpartx_id              |  11 +-<br>
 kpartx/lopart.c               | 106 +++++----<br>
 libmpathpersist/Makefile      |   4 +-<br>
 libmultipath/callout.c        |   6 +-<br>
 libmultipath/config.h         |   1 +<br>
 libmultipath/configure.c      |  33 ++-<br>
 libmultipath/defaults.h       |   1 +<br>
 libmultipath/devmapper.c      | 114 ++++++----<br>
 libmultipath/devmapper.h      |   4 +-<br>
 libmultipath/dict.c           |   4 +<br>
 libmultipath/discovery.c      | 115 +++++-----<br>
 libmultipath/dmparser.c       |  20 +-<br>
 libmultipath/hwtable.c        |  41 +++-<br>
 libmultipath/lock.h           |   4 +-<br>
 libmultipath/print.c          |   6 +-<br>
 libmultipath/structs.c        |  17 +-<br>
 libmultipath/structs_vec.c    |  10 +-<br>
 libmultipath/structs_vec.h    |   2 +-<br>
 libmultipath/uevent.c         |  10 +-<br>
 multipath/11-dm-mpath.rules   |  10 +-<br>
 multipath/main.c              |   1 -<br>
 multipath/multipath.conf.5    |  16 +-<br>
 multipath/multipath.rules     |   2 +-<br>
 multipathd/cli.c              | 101 +++++++--<br>
 multipathd/cli.h              |   4 +-<br>
 multipathd/cli_handlers.c     |  85 +++++++-<br>
 multipathd/cli_handlers.h     |   2 +<br>
 multipathd/main.c             | 486 +++++++++++++++++++++++++++++-------------<br>
 multipathd/main.h             |   3 +<br>
 multipathd/multipathd.service |   6 +-<br>
 multipathd/uxlsnr.c           |  97 +++++----<br>
 35 files changed, 923 insertions(+), 456 deletions(-)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
2.6.6<br>
<br>
</font></span></blockquote></div><br></div>