On Wed, Apr 27, 2016 at 01:10:01PM +0200, Hannes Reinecke wrote: > Hi all, > > as promised several times, here's now a patchset with all the patches > queued up in my SLES repository. ACK on all the patches I haven't commented on. -Ben > > The first bits are pretty much uncontroversial (I hope), mainly fixes > etc. Next there are some systemd updates, setting dependencies and such. > > The _really_ important patch is > > multipathd: skip uninitialized devices during reconfiguration > > which basically is the cause for all the missing wwid issues we've seen. > So I wonder if we shouldn't just do away with all the tweaks we've > accumlated so far and see if that patch isn't sufficient. > According to Kay Sievers it should... > > Next is a general overhaul of the 'cookie' mechanism; Ben, Mike, > mind to have a look here? It _seems_ reasonable enough, but it would > be nice to have additional confirmation for that. > > Finally there are patches which probably require some more discussion: > - Asynchronous configuration: Do not call 'reconfigure' directly, but > rather set the daemon_status to 'configuration' and defer the actual > work to the main thread. This allows us to decouple it from the CLI > call, and we won't run into any udev/systemd timeout issues when > booting on large installations > - Lock pushdown: I remember to have sent this patch already at one > point, but it got rejected. So I try again :-) > With this patch the big vector lock is pushed down to the areas > where we actually need it, making the entire system running far > smoother during booting or failover in large instances. > We have been using this patch since SLE12 GA, ie for over two > years now. And seem to have ironed out all issues with it. > > The entire patchset can be found at: > > github.com:/hreinecke/multipath-tools.git > branch sles-resync > > As usual, comments and reviews are welcome. > Patches are based upon the latest git, including Bens patchset. > > Hannes Reinecke (57): > kpartx: Fixup persistent name generation > kpartx: handle more than 256 loop devices > kpartx: parse emulated DASD devices > kpartx: Install rules file with correct prefix > Add HP MSA 2040 to the hardware table > Use ALUA for HP 3PAR > Add LIO-ORG/SUSE RBD backend hardware defaults > Allow for empty SCSI revision > libmultipath: Do not use 'sscanf' for parsing integers > libmultipath: finally fix dev_loss_tmo setting > multipathd: fixup queueing mode in 'show maps status' > multipathd: fixup a crash when invoking CLI commands > multipathd: print error message for invalid arguments > libmultipath: correctly initialize pp->sg_id > libmultipath: correctly display checker status > libmultipath: call get_uid() for all paths > libmultipath: additional logging messages when formatting callout > libmpathpersist: Fixup whitespaces in Makefile > multipathd: Do not print misleading message 'not found in pathvec' > multipathd: Do not update the paths vec when removing paths > libmultipath: avoid double semicolon in lock.h > multipath: use option '-i' when called from udev > multipath: remove warning 'failed to get wwid' > Add dependency on systemd-udevd.service > Load all device handler modules on startup > 11-dm-mpath.rules: Only import ID_FS_XXX variables if not set > Ensure multipathd is started before systemd-udev-trigger.service > libmultipath: use a shared lock to co-operate with udev > Only filter for udev property if uid_attribute is present > multipathd: skip uninitialized devices during reconfiguration > multipathd: improve uxlsnr > libmultipath: remove 'needsync' argument from dm_simplecmd_noflush > libmultipath: remove 'use_uuid' argument from dm_addmap() > Always set DM_UDEV_DISABLE_LIBRARY_FALLBACK > libmultipath: pass in cookie as argument for dm_simplecmd() > libmultipath: pass in 'cookie' as argument for dm_addmap() > Remove 'udev_sync' argument from dm_simplecmd() > libmultipath: Fixup 'DM_DEVICE_RELOAD' handling > devmapper: do not flush I/O for DM_DEVICE_CREATE > libmultipath: fixup dm_rename to complete cookie on failure > multipathd: accept zero-size paths in ev_add_path() > Use multipath wwid if path wwid is empty > multipathd: set uxsock_timeout after reconfiguration > multipathd: Do not switch paths on empty multipath tables > libmultipath: remove 'get_info' argument for adopt_paths() > libmultipath: ensure 'dev_t' is set when store paths > libmultipath: sanity check on store_path() > dmparser: Use find_path_by_dev() > multipathd: do not flush maps on startup > multipathd: strict loop timings > multipathd: Provide standard error description on cli failure > libmultipath: make 'dm_addmap' static > multipathd: implement 'show map $map format $fmt' > multipathd: Increase uxclnt timeout > multipathd: asynchronous configuration > multipathd: push down lock in checkerloop() > Allow specific CLI commands to run unlocked > > kpartx/Makefile | 6 +- > kpartx/dasd.c | 39 +++- > kpartx/dasd.h | 1 + > kpartx/kpartx.rules | 11 +- > kpartx/kpartx_id | 11 +- > kpartx/lopart.c | 106 +++++---- > libmpathpersist/Makefile | 4 +- > libmultipath/callout.c | 6 +- > libmultipath/config.h | 1 + > libmultipath/configure.c | 33 ++- > libmultipath/defaults.h | 1 + > libmultipath/devmapper.c | 114 ++++++---- > libmultipath/devmapper.h | 4 +- > libmultipath/dict.c | 4 + > libmultipath/discovery.c | 115 +++++----- > libmultipath/dmparser.c | 20 +- > libmultipath/hwtable.c | 41 +++- > libmultipath/lock.h | 4 +- > libmultipath/print.c | 6 +- > libmultipath/structs.c | 17 +- > libmultipath/structs_vec.c | 10 +- > libmultipath/structs_vec.h | 2 +- > libmultipath/uevent.c | 10 +- > multipath/11-dm-mpath.rules | 10 +- > multipath/main.c | 1 - > multipath/multipath.conf.5 | 16 +- > multipath/multipath.rules | 2 +- > multipathd/cli.c | 101 +++++++-- > multipathd/cli.h | 4 +- > multipathd/cli_handlers.c | 85 +++++++- > multipathd/cli_handlers.h | 2 + > multipathd/main.c | 486 +++++++++++++++++++++++++++++------------- > multipathd/main.h | 3 + > multipathd/multipathd.service | 6 +- > multipathd/uxlsnr.c | 97 +++++---- > 35 files changed, 923 insertions(+), 456 deletions(-) > > -- > 2.6.6 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel