Re: [PATCH v8 00/18] blk-mq/scsi: Provide hostwide shared tags for SCSI HBAs

From: John Garry
Date: Fri Sep 04 2020 - 05:12:12 EST


On 03/09/2020 22:23, Jens Axboe wrote:
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.


Great, thanks!

So the SCSI parts depend on the block parts for building, so I guess it makes sense if you could carry them also.

hpsa and smartpqi patches are pending for now, but the rest could be picked up. Martin/James may want more review of the SCSI core bits, though.

Thanks again,
John