On 8/19/20 9:20 AM, John Garry wrote:
Hi all,
Here is v8 of the patchset.
In this version of the series, we keep the shared sbitmap for driver tags,
and introduce changes to fix up the tag budgeting across request queues.
We also have a change to count requests per-hctx for when an elevator is
enabled, as an optimisation. I also dropped the debugfs changes - more on
that below.
Some performance figures:
Using 12x SAS SSDs on hisi_sas v3 hw. mq-deadline results are included,
but it is not always an appropriate scheduler to use.
Tag depth 4000 (default) 260**
Baseline (v5.9-rc1):
none sched: 2094K IOPS 513K
mq-deadline sched: 2145K IOPS 1336K
Final, host_tagset=0 in LLDD *, ***:
none sched: 2120K IOPS 550K
mq-deadline sched: 2121K IOPS 1309K
Final ***:
none sched: 2132K IOPS 1185
mq-deadline sched: 2145K IOPS 2097
* this is relevant as this is the performance in supporting but not
enabling the feature
** depth=260 is relevant as some point where we are regularly waiting for
tags to be available. Figures were are a bit unstable here.
*** Included "[PATCH V4] scsi: core: only re-run queue in
scsi_end_request() if device queue is busy"
A copy of the patches can be found here:
https://github.com/hisilicon/kernel-dev/tree/private-topic-blk-mq-shared-tags-v8
The hpsa patch depends on:
https://lore.kernel.org/linux-scsi/20200430131904.5847-1-hare@xxxxxxx/
And the smartpqi patch is not to be accepted.
Comments (and testing) welcome, thanks!
I applied 1-11, leaving the SCSI core bits and drivers to Martin. I can
also carry them, just let me know.