Skip to content
Commit f227345f authored by Thomas Song's avatar Thomas Song Committed by Keith Busch
Browse files

nvme-multipath: implement "queue-depth" iopolicy



The round-robin path selector is inefficient in cases where there is a
difference in latency between paths.  In the presence of one or more
high latency paths the round-robin selector continues to use the high
latency path equally. This results in a bias towards the highest latency
path and can cause a significant decrease in overall performance as IOs
pile on the highest latency path. This problem is acute with NVMe-oF
controllers.

The queue-depth path selector sends I/O down the path with the lowest
number of requests in its request queue. Paths with lower latency will
clear requests more quickly and have less requests queued compared to
higher latency paths. The goal of this path selector is to make more use
of lower latency paths which will bring down overall IO latency and
increase throughput and performance.

Signed-off-by: default avatarThomas Song <tsong@purestorage.com>
[emilne: commandeered patch developed by Thomas Song @ Pure Storage]
Co-developed-by: default avatarEwan D. Milne <emilne@redhat.com>
Signed-off-by: default avatarEwan D. Milne <emilne@redhat.com>
Co-developed-by: default avatarJohn Meneghini <jmeneghi@redhat.com>
Signed-off-by: default avatarJohn Meneghini <jmeneghi@redhat.com>
Link: https://lore.kernel.org/linux-nvme/20240509202929.831680-1-jmeneghi@redhat.com/


Tested-by: default avatarMarco Patalano <mpatalan@redhat.com>
Tested-by: default avatarJyoti Rani <jrani@purestorage.com>
Tested-by: default avatarJohn Meneghini <jmeneghi@redhat.com>
Reviewed-by: default avatarRandy Jennings <randyj@purestorage.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
parent 3d7c2fd2
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment