]> git.baikalelectronics.ru Git - kernel.git/commit
dm mpath: add Historical Service Time Path Selector
authorKhazhismel Kumykov <khazhy@google.com>
Thu, 30 Apr 2020 20:48:30 +0000 (16:48 -0400)
committerMike Snitzer <snitzer@redhat.com>
Fri, 15 May 2020 14:29:36 +0000 (10:29 -0400)
commit76f7f71eea90ffb3383f71c7dff51968731c5e1d
tree6334b03101080215f8f74b3d80c021289281a230
parentf5b765991886b2459be2bd2df93319cfed90c73b
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>
drivers/md/Kconfig
drivers/md/Makefile
drivers/md/dm-historical-service-time.c [new file with mode: 0644]