All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] multipath: change default configuration parameters
@ 2013-01-08  5:34 Benjamin Marzinski
  2013-01-10 17:33 ` Xose Vazquez Perez
  0 siblings, 1 reply; 8+ messages in thread
From: Benjamin Marzinski @ 2013-01-08  5:34 UTC (permalink / raw)
  To: device-mapper development; +Cc: Christophe Varoqui

This patch makes multipath devices default to setting fast_io_fail,
switches the default selector to service-time and removes the
round-robin setting of the builtin device configurations. The goal is
to give multipath devices better performance "out of the box".

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
 libmultipath/config.c   |    1 
 libmultipath/defaults.h |    2 -
 libmultipath/hwtable.c  |   65 ------------------------------------------------
 3 files changed, 2 insertions(+), 66 deletions(-)

Index: multipath-tools-120821/libmultipath/config.c
===================================================================
--- multipath-tools-120821.orig/libmultipath/config.c
+++ multipath-tools-120821/libmultipath/config.c
@@ -516,6 +516,7 @@ load_config (char * file)
 	conf->reassign_maps = DEFAULT_REASSIGN_MAPS;
 	conf->checkint = DEFAULT_CHECKINT;
 	conf->max_checkint = MAX_CHECKINT(conf->checkint);
+	conf->fast_io_fail = 5;
 
 	/*
 	 * preload default hwtable
Index: multipath-tools-120821/libmultipath/hwtable.c
===================================================================
--- multipath-tools-120821.orig/libmultipath/hwtable.c
+++ multipath-tools-120821/libmultipath/hwtable.c
@@ -28,7 +28,6 @@ static struct hwentry default_hw[] = {
 		.product       = "Compellent Vol",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -50,7 +49,6 @@ static struct hwentry default_hw[] = {
 		.product       = "Xserve RAID ",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -72,7 +70,6 @@ static struct hwentry default_hw[] = {
 		.product       = "VV",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -88,7 +85,6 @@ static struct hwentry default_hw[] = {
 		.product       = "HSG80",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = "1 hp_sw",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -104,7 +100,6 @@ static struct hwentry default_hw[] = {
 		.product       = "A6189A",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -121,7 +116,6 @@ static struct hwentry default_hw[] = {
 		.product       = "(MSA|HSV)1.0.*",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = "1 hp_sw",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -137,7 +131,6 @@ static struct hwentry default_hw[] = {
 		.product       = "MSA VOLUME",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -153,7 +146,6 @@ static struct hwentry default_hw[] = {
 		.product       = "HSV1[01]1|HSV2[01]0|HSV300|HSV4[05]0",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -169,7 +161,6 @@ static struct hwentry default_hw[] = {
 		.product       = "MSA2[02]12fc|MSA2012i",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -185,7 +176,6 @@ static struct hwentry default_hw[] = {
 		.product       = "MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -202,7 +192,6 @@ static struct hwentry default_hw[] = {
 		.product       = "HSVX700",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 alua",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -219,7 +208,6 @@ static struct hwentry default_hw[] = {
 		.product       = "LOGICAL VOLUME.*",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -236,7 +224,6 @@ static struct hwentry default_hw[] = {
 		.product       = "P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -258,7 +245,6 @@ static struct hwentry default_hw[] = {
 		.product       = "SAN DataDirector",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -280,7 +266,6 @@ static struct hwentry default_hw[] = {
 		.product       = "SYMMETRIX",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -297,7 +282,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "LUNZ",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = "1 emc",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -314,7 +298,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "LUNZ",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -336,7 +319,6 @@ static struct hwentry default_hw[] = {
 		.product       = "CentricStor",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_SERIAL,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -352,7 +334,6 @@ static struct hwentry default_hw[] = {
 		.product       = "ETERNUS_DX(L|400|8000)",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -373,7 +354,6 @@ static struct hwentry default_hw[] = {
 		.product       = "OPEN-.*",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -389,7 +369,6 @@ static struct hwentry default_hw[] = {
 		.product       = "DF.*",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -411,7 +390,6 @@ static struct hwentry default_hw[] = {
 		.product       = "ProFibre 4000R",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -429,7 +407,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -447,7 +424,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -465,7 +441,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -483,7 +458,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -500,7 +474,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "2 pg_init_retries 50",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -518,7 +491,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -536,7 +508,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -554,7 +525,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -572,7 +542,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -589,7 +558,6 @@ static struct hwentry default_hw[] = {
 		.product       = "^3542",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_SERIAL,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -606,7 +574,6 @@ static struct hwentry default_hw[] = {
 		.product       = "^2105800",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_SERIAL,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -623,7 +590,6 @@ static struct hwentry default_hw[] = {
 		.product       = "^2105F20",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_SERIAL,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -640,7 +606,6 @@ static struct hwentry default_hw[] = {
 		.product       = "^1750500",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -657,7 +622,6 @@ static struct hwentry default_hw[] = {
 		.product       = "^2107900",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -674,7 +638,6 @@ static struct hwentry default_hw[] = {
 		.product       = "^2145",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -693,7 +656,6 @@ static struct hwentry default_hw[] = {
 		.uid_attribute = "ID_UID",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -712,7 +674,6 @@ static struct hwentry default_hw[] = {
 		.uid_attribute = "ID_UID",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -729,7 +690,6 @@ static struct hwentry default_hw[] = {
 		.product       = "^IPR.*",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = "1 alua",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -746,7 +706,6 @@ static struct hwentry default_hw[] = {
 		.product       = "1820N00",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -763,7 +722,6 @@ static struct hwentry default_hw[] = {
 		.product       = "2810XIV",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = 15,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -786,7 +744,6 @@ static struct hwentry default_hw[] = {
 		.product       = "VDASD",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -803,7 +760,6 @@ static struct hwentry default_hw[] = {
 		.product       = "3303      NVDISK",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = FAILOVER,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -820,7 +776,6 @@ static struct hwentry default_hw[] = {
 		.product       = "NVDISK",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 alua",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -838,7 +793,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "2 pg_init_retries 50",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -856,7 +810,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "2 pg_init_retries 50",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -874,7 +827,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "2 pg_init_retries 50",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -892,7 +844,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "2 pg_init_retries 50",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -914,7 +865,6 @@ static struct hwentry default_hw[] = {
 		.product       = "LUN.*",
 		.features      = "3 queue_if_no_path pg_init_retries 50",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.flush_on_last_del = FLUSH_ENABLED,
@@ -936,7 +886,6 @@ static struct hwentry default_hw[] = {
 		.product       = "COMSTAR",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_SERIAL,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -957,7 +906,6 @@ static struct hwentry default_hw[] = {
 		.product       = "Nseries.*",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -978,7 +926,6 @@ static struct hwentry default_hw[] = {
 		.product       = "Axiom.*",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1001,7 +948,6 @@ static struct hwentry default_hw[] = {
 		.product       = "TP9[13]00",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1018,7 +964,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1035,7 +980,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "2 pg_init_retries 50",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1052,7 +996,6 @@ static struct hwentry default_hw[] = {
 		.product       = "DISK ARRAY",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 alua",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1075,7 +1018,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1097,7 +1039,6 @@ static struct hwentry default_hw[] = {
 		.product       = "(StorEdge 3510|T4)",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1113,7 +1054,6 @@ static struct hwentry default_hw[] = {
 		.product       = "FC2502",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1135,7 +1075,6 @@ static struct hwentry default_hw[] = {
 		.product       = "RAIGE VOLUME",
 		.features      = "1 queue_if_no_path",
 		.hwhandler     = DEFAULT_HWHANDLER,
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1151,7 +1090,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1169,7 +1107,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1187,7 +1124,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = "2 pg_init_retries 50",
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
@@ -1204,7 +1140,6 @@ static struct hwentry default_hw[] = {
 		.bl_product    = "Universal Xport",
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = "1 rdac",
-		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
Index: multipath-tools-120821/libmultipath/defaults.h
===================================================================
--- multipath-tools-120821.orig/libmultipath/defaults.h
+++ multipath-tools-120821/libmultipath/defaults.h
@@ -1,7 +1,7 @@
 #define DEFAULT_UID_ATTRIBUTE	"ID_SERIAL"
 #define DEFAULT_UDEVDIR		"/dev"
 #define DEFAULT_MULTIPATHDIR	"/" LIB_STRING "/multipath"
-#define DEFAULT_SELECTOR	"round-robin 0"
+#define DEFAULT_SELECTOR	"service-time 0"
 #define DEFAULT_ALIAS_PREFIX	"mpath"
 #define DEFAULT_FEATURES	"0"
 #define DEFAULT_HWHANDLER	"0"

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

* Re: [PATCH] multipath: change default configuration parameters
  2013-01-08  5:34 [PATCH] multipath: change default configuration parameters Benjamin Marzinski
@ 2013-01-10 17:33 ` Xose Vazquez Perez
  2013-01-15 21:02   ` Christophe Varoqui
  0 siblings, 1 reply; 8+ messages in thread
From: Xose Vazquez Perez @ 2013-01-10 17:33 UTC (permalink / raw)
  To: device-mapper development; +Cc: Christophe Varoqui

On 01/08/2013 06:34 AM, Benjamin Marzinski wrote:

> This patch makes multipath devices default to setting fast_io_fail,
> switches the default selector to service-time and removes the
> round-robin setting of the builtin device configurations. The goal is
> to give multipath devices better performance "out of the box".
> 
> Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
> ---
>  libmultipath/config.c   |    1 
>  libmultipath/defaults.h |    2 -
>  libmultipath/hwtable.c  |   65 ------------------------------------------------
>  3 files changed, 2 insertions(+), 66 deletions(-)

These changes should also translate to the multipath.conf.defaults file.

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

* Re: [PATCH] multipath: change default configuration parameters
  2013-01-10 17:33 ` Xose Vazquez Perez
@ 2013-01-15 21:02   ` Christophe Varoqui
  2013-01-15 21:48     ` Xose Vazquez Perez
  2013-01-15 22:14     ` Xose Vazquez Perez
  0 siblings, 2 replies; 8+ messages in thread
From: Christophe Varoqui @ 2013-01-15 21:02 UTC (permalink / raw)
  To: Xose Vazquez Perez; +Cc: device-mapper development, Christophe Varoqui

On jeu., 2013-01-10 at 18:33 +0100, Xose Vazquez Perez wrote:
> On 01/08/2013 06:34 AM, Benjamin Marzinski wrote:
> 
> > This patch makes multipath devices default to setting fast_io_fail,
> > switches the default selector to service-time and removes the
> > round-robin setting of the builtin device configurations. The goal is
> > to give multipath devices better performance "out of the box".
> > 
> > Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
> > ---
> >  libmultipath/config.c   |    1 
> >  libmultipath/defaults.h |    2 -
> >  libmultipath/hwtable.c  |   65 ------------------------------------------------
> >  3 files changed, 2 insertions(+), 66 deletions(-)
> 
> These changes should also translate to the multipath.conf.defaults file.

I pushed a patch to resync the multipath.conf.defaults using the
"multipathd show config" output.

Best regards,
Christophe Varoqui

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

* Re: [PATCH] multipath: change default configuration parameters
  2013-01-15 21:02   ` Christophe Varoqui
@ 2013-01-15 21:48     ` Xose Vazquez Perez
  2013-01-16 20:42       ` Christophe Varoqui
  2013-01-15 22:14     ` Xose Vazquez Perez
  1 sibling, 1 reply; 8+ messages in thread
From: Xose Vazquez Perez @ 2013-01-15 21:48 UTC (permalink / raw)
  To: christophe.varoqui; +Cc: device-mapper development, Christophe Varoqui

On 01/15/2013 10:02 PM, Christophe Varoqui wrote:

> I pushed a patch to resync the multipath.conf.defaults using the
> "multipathd show config" output.

> --- a/multipath.conf.defaults
> +++ b/multipath.conf.defaults
> @@ -2,775 +2,863 @@
>  # overwrite these values in your config file.
>  
>  #defaults {
> -#      udev_dir                /dev
> -#      polling_interval        5
> -#      path_selector           "round-robin 0"
> -#      path_grouping_policy    failover
> -#      getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
> -#      prio                    const
> -#      prio_args               ""
> -#      path_checker            directio
> -#      rr_min_io               1000
> -#      rr_weight               uniform
> -#      failback                manual
> -#      no_path_retry           fail
> -#      user_friendly_names     no
> +#      verbosity 2
> +#      polling_interval 5
> +#      multipath_dir "/lib64/multipath"

multipath_dir should be removed, it's generated at compile time.

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

* Re: [PATCH] multipath: change default configuration parameters
  2013-01-15 21:02   ` Christophe Varoqui
  2013-01-15 21:48     ` Xose Vazquez Perez
@ 2013-01-15 22:14     ` Xose Vazquez Perez
  2013-01-16 21:24       ` Christophe Varoqui
  1 sibling, 1 reply; 8+ messages in thread
From: Xose Vazquez Perez @ 2013-01-15 22:14 UTC (permalink / raw)
  To: christophe.varoqui; +Cc: device-mapper development, Christophe Varoqui

On 01/15/2013 10:02 PM, Christophe Varoqui wrote:

> I pushed a patch to resync the multipath.conf.defaults using the
> "multipathd show config" output.

> --- a/multipath.conf.defaults
> +++ b/multipath.conf.defaults
> @@ -2,775 +2,863 @@
>  # overwrite these values in your config file.
>  
>  #defaults {
> -#      udev_dir                /dev
> -#      polling_interval        5
> -#      path_selector           "round-robin 0"
> -#      path_grouping_policy    failover
> -#      getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"

scsi_id is going to be replaced in systemd(recently udev was
included in systemd).

See sg_inq(--export option) from sg3_utils.

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

* Re: [PATCH] multipath: change default configuration parameters
  2013-01-15 21:48     ` Xose Vazquez Perez
@ 2013-01-16 20:42       ` Christophe Varoqui
  0 siblings, 0 replies; 8+ messages in thread
From: Christophe Varoqui @ 2013-01-16 20:42 UTC (permalink / raw)
  To: Xose Vazquez Perez; +Cc: development, device-mapper, Christophe Varoqui

On mar., 2013-01-15 at 22:48 +0100, Xose Vazquez Perez wrote:
> On 01/15/2013 10:02 PM, Christophe Varoqui wrote:
> 
> > I pushed a patch to resync the multipath.conf.defaults using the
> > "multipathd show config" output.
> 
> > --- a/multipath.conf.defaults
> > +++ b/multipath.conf.defaults
> > @@ -2,775 +2,863 @@
> >  # overwrite these values in your config file.
> >  
> >  #defaults {
> > -#      udev_dir                /dev
> > -#      polling_interval        5
> > -#      path_selector           "round-robin 0"
> > -#      path_grouping_policy    failover
> > -#      getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
> > -#      prio                    const
> > -#      prio_args               ""
> > -#      path_checker            directio
> > -#      rr_min_io               1000
> > -#      rr_weight               uniform
> > -#      failback                manual
> > -#      no_path_retry           fail
> > -#      user_friendly_names     no
> > +#      verbosity 2
> > +#      polling_interval 5
> > +#      multipath_dir "/lib64/multipath"
> 
> multipath_dir should be removed, it's generated at compile time.

 True. Applied.

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

* Re: [PATCH] multipath: change default configuration parameters
  2013-01-15 22:14     ` Xose Vazquez Perez
@ 2013-01-16 21:24       ` Christophe Varoqui
  2013-01-17  7:30         ` Hannes Reinecke
  0 siblings, 1 reply; 8+ messages in thread
From: Christophe Varoqui @ 2013-01-16 21:24 UTC (permalink / raw)
  To: Xose Vazquez Perez; +Cc: device-mapper development

On mar., 2013-01-15 at 23:14 +0100, Xose Vazquez Perez wrote:
...
> scsi_id is going to be replaced in systemd(recently udev was
> included in systemd).
> 
> See sg_inq(--export option) from sg3_utils.

We will need to patch sg_inq to report a denser id than the documented
SCSI_IDENT_<assoc>_<type>=<ident>

Time to launch a debate over the pertinence to maintain the '3' prefix
scsi_id insisted on prepending to the wwids ... Lennart will take the
blame without flinching I'm sure ;)

Regards,
Christophe Varoqui
www.opensvc.com

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

* Re: [PATCH] multipath: change default configuration parameters
  2013-01-16 21:24       ` Christophe Varoqui
@ 2013-01-17  7:30         ` Hannes Reinecke
  0 siblings, 0 replies; 8+ messages in thread
From: Hannes Reinecke @ 2013-01-17  7:30 UTC (permalink / raw)
  To: dm-devel; +Cc: Kay Sievers

[-- Attachment #1: Type: text/plain, Size: 2142 bytes --]

On 01/16/2013 10:24 PM, Christophe Varoqui wrote:
> On mar., 2013-01-15 at 23:14 +0100, Xose Vazquez Perez wrote:
> ...
>> scsi_id is going to be replaced in systemd(recently udev was
>> included in systemd).
>>
>> See sg_inq(--export option) from sg3_utils.
>
> We will need to patch sg_inq to report a denser id than the documented
> SCSI_IDENT_<assoc>_<type>=<ident>
>
Why? It took me ages to implement that one properly.
And it's only strings, which can be expanded at will.
Plus I have a set of udev rules mangling those into the usual ID_XXX 
variables.

I don't see why we need to change that ...

> Time to launch a debate over the pertinence to maintain the '3' prefix
> scsi_id insisted on prepending to the wwids ... Lennart will take the
> blame without flinching I'm sure ;)
>
It's not '3'.

The '3' is the VPD designator ID as defined in the spec. And it's 
attached there so that you can differentiate between several IDs, 
which might be identical otherwise.

The original idea behind the prefix was that each ID has a different 
level of 'uniqueness'.
Basically, there are 5 possible designator IDs for the LUN:

0: Vendor specific
1: T10 Vendor ID based
2: EUI-64 based
3: NAA
8: SCSI Name string

of which 0, 1, and 8 are basically arbitrary. We only have a 
guaranteed unique ID when the designator is of type 2 or 3.
So prefixing the designator number allows you to figure out whether 
it's a good idea for using that ID.

Mind you, that was when all was encoded in scsi_id.
Now that's all open-coded with udev rules you have different 
variables for each ID, so it's easy to figure out.

But sorry, we can't change that.
Upgrade will be _HELL_ if you do that.

Btw, a patch to the udev rules is attached. It's not yet included in 
the upstream sources as Kay and I are still discussing whether we 
should split the original rule set.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)

[-- Attachment #2: use-sg_inq-in-persistent-rules.patch --]
[-- Type: text/x-patch, Size: 3871 bytes --]

diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules
index 1c4c2b2..a8377c6 100644
--- a/rules/rules.d/60-persistent-storage.rules
+++ b/rules/rules.d/60-persistent-storage.rules
@@ -38,17 +38,35 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="ata", IMPORT{program
 # ATA devices using the "scsi" subsystem
 KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $tempnode"
 # scsi devices
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="scsi"
-KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="cciss"
+KERNEL=="sd*[!0-9]|sr*", IMPORT{program}="/usr/bin/sg_inq --export  $tempnode", ENV{ID_BUS}="scsi"
+KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="/usr/bin/sg_inq --export $tempnode", ENV{ID_BUS}="cciss"
+# Select which identifier to use per default
+# 1: NAA IEEE Registered Extended identifier
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAA}=="6*", ENV{ID_SERIAL}="3$env{SCSI_IDENT_LUN_NAA}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAA}"
+# 2: NAA IEEE Registered identifier
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAA}=="5*", ENV{ID_SERIAL}="3$env{SCSI_IDENT_LUN_NAA}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAA}"
+# 3: Unspecified NAA identfier
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_SERIAL}="3$env{SCSI_IDENT_LUN_NAA}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAA}"
+# 4: EUI-64 identifer
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_EUI64}=="?*", ENV{ID_SERIAL}="2$env{SCSI_IDENT_LUN_EUI64}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_EUI64}"
+# 5: SCSI name identifier
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAME}=="?*", ENV{ID_SERIAL}="8$env{SCSI_IDENT_LUN_NAME}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAME}"
+# 6: T10 Vendor identifer
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_T10}=="?*", ENV{ID_SERIAL}="1$env{SCSI_IDENT_LUN_T10}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_T10}"
+# 7: Vendor-specific identifier
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_VENDOR}=="?*", ENV{ID_SERIAL}="0$env{SCSI_IDENT_LUN_VENDOR}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_VENDOR}"
 KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
 KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
 
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SCSI_SERIAL}!="?*", IMPORT{program}="/usr/bin/sg_inq --export -p 0x80 $tempnode", ENV{ID_SCSI_SERIAL}="$env{SCSI_IDENT_SERIAL}"
+KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SCSI_SERIAL}!="?*", IMPORT{program}="/usr/bin/sg_inq --export -p 0x80 $tempnode", ENV{ID_SCSI_SERIAL}="$env{SCSI_IDENT_SERIAL}"
+
 # firewire
 KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
 KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"
 
 # scsi compat links for ATA devices
-KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d$tempnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", ENV{SCSI_IDENT_SERIAL}=="?*", ENV{ID_SCSI_COMPAT}="$env{SCSI_IDENT_SERIAL}", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
 KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n"
 
 KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



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

end of thread, other threads:[~2013-01-17  7:30 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-08  5:34 [PATCH] multipath: change default configuration parameters Benjamin Marzinski
2013-01-10 17:33 ` Xose Vazquez Perez
2013-01-15 21:02   ` Christophe Varoqui
2013-01-15 21:48     ` Xose Vazquez Perez
2013-01-16 20:42       ` Christophe Varoqui
2013-01-15 22:14     ` Xose Vazquez Perez
2013-01-16 21:24       ` Christophe Varoqui
2013-01-17  7:30         ` Hannes Reinecke

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.