summaryrefslogtreecommitdiffstats
path: root/drivers/md/Makefile
diff options
context:
space:
mode:
authorKhazhismel Kumykov <khazhy@google.com>2020-04-30 22:48:30 +0200
committerMike Snitzer <snitzer@redhat.com>2020-05-15 16:29:36 +0200
commit2613eab11996c8d1439c2a44fbca52807be7faa6 (patch)
tree6334b03101080215f8f74b3d80c021289281a230 /drivers/md/Makefile
parentdm mpath: pass IO start time to path selector (diff)
downloadlinux-2613eab11996c8d1439c2a44fbca52807be7faa6.tar.xz
linux-2613eab11996c8d1439c2a44fbca52807be7faa6.zip
dm mpath: add Historical Service Time Path Selector
This new selector keeps an exponential moving average of the service time for each path (losely defined as delta between start_io and end_io), and uses this along with the number of inflight requests to estimate future service time for a path. Since we don't have a prober to account for temporally slow paths, re-try "slow" paths every once in a while (num_paths * historical_service_time). To account for fast paths transitioning to slow, if a path has not completed any request within (num_paths * historical_service_time), limit the number of outstanding requests. To account for low volume situations where number of inflight IOs would be zero, the last finish time of each path is factored in. Signed-off-by: Khazhismel Kumykov <khazhy@google.com> Co-developed-by: Gabriel Krisman Bertazi <krisman@collabora.com> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/Makefile')
-rw-r--r--drivers/md/Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/md/Makefile b/drivers/md/Makefile
index 9a2d673f94bc..31840f95cd40 100644
--- a/drivers/md/Makefile
+++ b/drivers/md/Makefile
@@ -55,6 +55,7 @@ obj-$(CONFIG_DM_FLAKEY) += dm-flakey.o
obj-$(CONFIG_DM_MULTIPATH) += dm-multipath.o dm-round-robin.o
obj-$(CONFIG_DM_MULTIPATH_QL) += dm-queue-length.o
obj-$(CONFIG_DM_MULTIPATH_ST) += dm-service-time.o
+obj-$(CONFIG_DM_MULTIPATH_HST) += dm-historical-service-time.o
obj-$(CONFIG_DM_SWITCH) += dm-switch.o
obj-$(CONFIG_DM_SNAPSHOT) += dm-snapshot.o
obj-$(CONFIG_DM_PERSISTENT_DATA) += persistent-data/