Hi, This is the third version of HST considering the review by Mike Snitzer. This version drops the encapsulation patches and passes the parameter directly to end_io. It also uses jiffies_to_nsecs directly in dm_start_time_ns_from_clone, instead of converting to msecs in an intermediary step. This didn't show any regressions compared to the benchmark I presented on previous version: v2: https://www.redhat.com/archives/dm-devel/2020-April/msg00270.html v1: https://www.redhat.com/archives/dm-devel/2020-April/msg00176.html This was tested primarily on a Google cloud SAN with real data and usage patterns and with artificial benchmarks using fio. Gabriel Krisman Bertazi (1): md: mpath: Pass IO start time to path selector Khazhismel Kumykov (1): md: mpath: Add Historical Service Time Path Selector drivers/md/Kconfig | 11 + drivers/md/Makefile | 1 + drivers/md/dm-historical-service-time.c | 561 ++++++++++++++++++++++++ drivers/md/dm-mpath.c | 9 +- drivers/md/dm-path-selector.h | 2 +- drivers/md/dm-queue-length.c | 2 +- drivers/md/dm-service-time.c | 2 +- drivers/md/dm.c | 10 + include/linux/device-mapper.h | 2 + 9 files changed, 594 insertions(+), 6 deletions(-) create mode 100644 drivers/md/dm-historical-service-time.c -- 2.26.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel