@@ -113,7 +113,7 @@
# # scope : multipathd
# # desc : Sets the maximum number of open file descriptors for the
# # multipathd process.
-# # values : unlimited|n > 0
+# # values : max|n > 0
# # default : None
# #
# max_fds 8192
@@ -49,7 +49,7 @@
# product "MSA|HSV1.0.*"
# path_grouping_policy group_by_prio
# prio_callout "/sbin/mpath_prio_hp_sw /dev/%n"
-# hardware_handler "1 hp_sw"
+# hardware_handler "1 hp-sw"
# path_checker "hp_sw"
# no_path_retry 12
# rr_min_io 100
@@ -127,8 +127,13 @@
# device {
# vendor "DEC"
# product "HSG80"
-# path_grouping_policy group_by_serial
-# getuid_callout "/sbin/scsi_id -g -u -s"
+# path_grouping_policy group_by_prio
+# prio_callout "/sbin/mpath_prio_hp_sw /dev/%n"
+# hardware_handler "1 hp-sw"
+# features "1 queue_if_no_path"
+# path_checker hp_sw
+# no_path_retry 12
+# rr_min_io 100
# }
# device {
# vendor "DGC"
@@ -152,9 +152,9 @@
if (!buff)
return 1;
- if (strlen(buff) == 9 &&
- !strcmp(buff, "unlimited"))
- conf->max_fds = MAX_FDS_UNLIMITED;
+ if (strlen(buff) == 3 &&
+ !strcmp(buff, "max"))
+ conf->max_fds = MAX_FDS_MAX;
else
conf->max_fds = atoi(buff);
FREE(buff);
@@ -14,7 +14,6 @@
r += store_hwe(hw, "3PARdata", "VV", MULTIBUS, DEFAULT_GETUID);
r += store_hwe(hw, "APPLE*", "Xserve RAID ", MULTIBUS, DEFAULT_GETUID);
r += store_hwe(hw, "DDN", "SAN DataDirector", MULTIBUS, DEFAULT_GETUID);
- r += store_hwe(hw, "DEC", "HSG80", GROUP_BY_SERIAL, DEFAULT_GETUID);
r += store_hwe(hw, "EMC", "SYMMETRIX", MULTIBUS,
"/sbin/scsi_id -g -u -ppre-spc3-83 -s /block/%n");
r += store_hwe(hw, "FSC", "CentricStor", GROUP_BY_SERIAL, DEFAULT_GETUID);
@@ -25,7 +24,10 @@
r += store_hwe(hw, "STK", "OPENstorage D280", GROUP_BY_SERIAL, DEFAULT_GETUID);
r += store_hwe(hw, "SUN", "StorEdge 3510", MULTIBUS, DEFAULT_GETUID);
r += store_hwe(hw, "SUN", "T4", MULTIBUS, DEFAULT_GETUID);
-
+ r += store_hwe_ext(hw, "DEC", "HSG80", GROUP_BY_PRIO,
+ DEFAULT_GETUID, "/sbin/mpath_prio_hp_sw /dev/%n",
+ "1 hp-sw", "1 queue_if_no_path", "hp_sw",
+ FAILBACK_UNDEF, NULL, 12, 0, 100);
r + store_hwe_ext(hw, "GNBD", "GNBD", MULTIBUS,
"/sbin/gnbd_import -q -U /block/%n", NULL, "0", "0",
"directio", FAILBACK_UNDEF, NULL, 0, 0, 0);
@@ -35,7 +37,7 @@
100);
r += store_hwe_ext(hw, "COMPAQ", "MSA|HSV1.0.*", GROUP_BY_PRIO,
DEFAULT_GETUID, "/sbin/mpath_prio_hp_sw /dev/%n",
- "1 hp_sw", "0", "hp_sw", FAILBACK_UNDEF, NULL, 12, 0,
+ "1 hp-sw", "0", "hp_sw", FAILBACK_UNDEF, NULL, 12, 0,
100);
r += store_hwe_ext(hw, "(COMPAQ|HP)", "HSV1[01]1|HSV2[01]0|HSV300",
GROUP_BY_PRIO, DEFAULT_GETUID,
@@ -20,7 +20,7 @@
#define NO_PATH_RETRY_FAIL -1
#define NO_PATH_RETRY_QUEUE -2
-#define MAX_FDS_UNLIMITED -1
+#define MAX_FDS_MAX (1024 * 1024)
enum free_path_switch {
KEEP_PATHS,
@@ -1625,14 +1625,9 @@
if (conf->max_fds) {
struct rlimit fd_limit;
- if (conf->max_fds > 0) {
- fd_limit.rlim_cur = conf->max_fds;
- fd_limit.rlim_max = conf->max_fds;
- }
- else {
- fd_limit.rlim_cur = RLIM_INFINITY;
- fd_limit.rlim_max = RLIM_INFINITY;
- }
+
+ fd_limit.rlim_cur = conf->max_fds;
+ fd_limit.rlim_max = conf->max_fds;
if (setrlimit(RLIMIT_NOFILE, &fd_limit) < 0)
condlog(0, "can't set open fds limit to %d : %s\n",
conf->max_fds, strerror(errno));