@@ -265,6 +265,14 @@
# path_selector "round-robin 0"
#
# #
+# # name : rr_min_io
+# # scope : multipath
+# # desc : the number of IO to route to a path before switching
+# # to the next in the same path group
+# #
+# rr_min_io 100
+#
+# #
# # name : failback
# # scope : multipathd
# # desc : tell the daemon to manage path group failback, or
@@ -403,6 +411,14 @@
# path_selector "round-robin 0"
#
# #
+# # name : rr_min_io
+# # scope : multipath
+# # desc : the number of IO to route to a path before switching
+# # to the next in the same path group
+# #
+# rr_min_io 100
+#
+# #
# # name : path_checker
# # scope : multipathd
# # desc : path checking alorithm to use to check path state
@@ -556,6 +556,26 @@
}
static int
+hw_rr_min_io_handler(vector strvec)
+{
+ char * buff;
+ struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);
+
+ if (!hwe)
+ return 1;
+
+ buff = set_value(strvec);
+
+ if (!buff)
+ return 1;
+
+ hwe->rr_min_io = atoi(buff);
+ FREE(buff);
+
+ return 0;
+}
+
+static int
hw_features_handler(vector strvec)
{
struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);
@@ -830,6 +850,26 @@
return 0;
}
+
+static int
+mp_rr_min_io_handler(vector strvec)
+{
+ char * buff;
+ struct mpentry * mpe = VECTOR_LAST_SLOT(conf->mptable);
+
+ if (!mpe)
+ return 1;
+
+ buff = set_value(strvec);
+
+ if (!buff)
+ return 1;
+
+ mpe->rr_min_io = atoi(buff);
+ FREE(buff);
+
+ return 0;
+}
static int
mp_failback_handler(vector strvec)
{
@@ -1087,6 +1127,7 @@
install_keyword("getuid_callout", &hw_getuid_callout_handler);
install_keyword("path_selector", &hw_selector_handler);
install_keyword("path_checker", &hw_path_checker_handler);
+ install_keyword("rr_min_io", &hw_rr_min_io_handler);
install_keyword("features", &hw_features_handler);
install_keyword("hardware_handler", &hw_handler_handler);
install_keyword("prio_callout", &prio_callout_handler);
@@ -1104,6 +1145,7 @@
install_keyword("alias", &alias_handler);
install_keyword("path_grouping_policy", &mp_pgpolicy_handler);
install_keyword("path_selector", &mp_selector_handler);
+ install_keyword("rr_min_io", &mp_rr_min_io_handler);
install_keyword("failback", &mp_failback_handler);
install_keyword("rr_weight", &mp_weight_handler);
install_keyword("no_path_retry", &mp_no_path_retry_handler);