diff mbox

multipath: change default configuration parameters

Message ID 20130108053459.GU19059@ether.msp.redhat.com (mailing list archive)
State Deferred, archived
Headers show

Commit Message

Benjamin Marzinski Jan. 8, 2013, 5:34 a.m. UTC
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(-)


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

Comments

Xose Vazquez Perez Jan. 10, 2013, 5:33 p.m. UTC | #1
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.

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Christophe Varoqui Jan. 15, 2013, 9:02 p.m. UTC | #2
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

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Xose Vazquez Perez Jan. 15, 2013, 9:48 p.m. UTC | #3
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.

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Xose Vazquez Perez Jan. 15, 2013, 10:14 p.m. UTC | #4
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.

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Christophe Varoqui Jan. 16, 2013, 8:42 p.m. UTC | #5
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.


--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Christophe Varoqui Jan. 16, 2013, 9:24 p.m. UTC | #6
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


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

Patch

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"