[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1574173658-76818-1-git-send-email-john.garry@huawei.com>
Date: Tue, 19 Nov 2019 22:27:33 +0800
From: John Garry <john.garry@...wei.com>
To: <axboe@...nel.dk>, <jejb@...ux.ibm.com>,
<martin.petersen@...cle.com>
CC: <linux-block@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-scsi@...r.kernel.org>, <ming.lei@...hat.com>,
<hare@...e.com>, <bvanassche@....org>, <chenxiang66@...ilicon.com>,
John Garry <john.garry@...wei.com>
Subject: [PATCH RFC v2 0/5] blk-mq/scsi: Provide hostwide shared tags for SCSI HBAs
This is another stab at solving the problem of hostwide shared tags for SCSI
HBAs.
As discussed previously, Ming Lei's most recent series in [0] to use
hctx[0] tags for all hctx for a host was a bit messy and intrusive, so seen
as a no go. Indeed, blk-mq is designed for separate tags per hctx.
Bart also followed up on my v1 RFC with another implementation along those
same lines, which was neater, but I am concerned that the change in this
approach may cause issues - see [1].
This series introduces a different approach to solve that problem, in
keeping the per-hctx tags but introducing a new separate sbitmap per
tagset. The shared sbitmap is used to generate a unique tag over all hctx per
tagset.
Currently I just fixed up the hisi_sas driver to use the shared tags,
but should not be much trouble to change others over.
Patch #3 is still quite experimental at this point - I added some code
comments on this. I also threw in a minor tidy-up patch.
[0] https://lore.kernel.org/linux-block/20190531022801.10003-1-ming.lei@redhat.com/
[1] https://lore.kernel.org/linux-block/ff77beff-5fd9-9f05-12b6-826922bace1f@huawei.com/T/#m3db0a602f095cbcbff27e9c884d6b4ae826144be
Differences to v1:
- Use a shared sbitmap, and not a separate shared tags (a big change!)
- Drop request.shared_tag
- Add RB tags
Hannes Reinecke (1):
scsi: Add template flag 'host_tagset'
John Garry (3):
blk-mq: Remove some unused function arguments
blk-mq: Facilitate a shared sbitmap per tagset
scsi: hisi_sas: Switch v3 hw to MQ
Ming Lei (1):
blk-mq: rename BLK_MQ_F_TAG_SHARED as BLK_MQ_F_TAG_QUEUE_SHARED
block/bfq-iosched.c | 4 +-
block/blk-mq-debugfs.c | 6 +-
block/blk-mq-sched.c | 14 +++++
block/blk-mq-tag.c | 80 +++++++++++++++++------
block/blk-mq-tag.h | 18 ++++--
block/blk-mq.c | 87 ++++++++++++++++++++------
block/blk-mq.h | 7 ++-
block/kyber-iosched.c | 4 +-
drivers/scsi/hisi_sas/hisi_sas.h | 3 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 36 ++++++-----
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 86 +++++++++++--------------
drivers/scsi/scsi_lib.c | 2 +
include/linux/blk-mq.h | 9 ++-
include/scsi/scsi_host.h | 3 +
14 files changed, 239 insertions(+), 120 deletions(-)
--
2.17.1
Powered by blists - more mailing lists