All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC v5 00/11] blk-mq/scsi: Provide hostwide shared tags for SCSI HBAs
@ 2019-12-02 15:39 Hannes Reinecke
  2019-12-02 15:39 ` [PATCH 01/11] blk-mq: Remove some unused function arguments Hannes Reinecke
                   ` (11 more replies)
  0 siblings, 12 replies; 37+ messages in thread
From: Hannes Reinecke @ 2019-12-02 15:39 UTC (permalink / raw)
  To: Martin K. Petersen
  Cc: Jens Axboe, Christoph Hellwig, James Bottomley, John Garry,
	Ming Lei, linux-scsi, linux-block, Hannes Reinecke

Hi all,

here now is an updated version of the v2 patchset from John Garry,
including the suggestions and reviews from the mailing list.
John, apologies for hijacking your work :-)

For this version I've only added some slight modifications to Johns
original patch (renaming variables etc); the contentious separate sbitmap
allocation has been dropped in favour of Johns original version with pointers
to the embedded sbitmap.

But more importantly I've reworked the scheduler tag allocation after
discussions with Ming Lei.

Point is, hostwide shared tags can't really be resized; they surely
cannot be increased (as it's a hardware limitation), and even decreasing
is questionable as any modification here would affect all devices
served by this HBA.

Scheduler tags, OTOH, can be considered as per-queue, as the I/O scheduler
might want to look at all requests on all queues. As such the queue depth
is distinct from the actual queue depth of the tagset.
Seeing that it is distinct the depth can now be changed independently of
the underlying tagset, and there's no need ever to change the tagset itself.

I've also modified megaraid_sas, smartpqi and hpsa to take advantage of
host_tags.

Performance for megaraid_sas is on par with the original implementation,
with the added benefit that with this we should be able to handle cpu
hotplug properly.

Differences to v4:
- Rework scheduler tag allocations
- Revert back to the original implementation from John

Differences to v3:
- Include reviews from Ming Lei

Differences to v2:
- Drop embedded tag bitmaps
- Do not share scheduling tags
- Add patches for hpsa and smartpqi

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 (7):
  blk-mq: rename blk_mq_update_tag_set_depth()
  blk-mq: add WARN_ON in blk_mq_free_rqs()
  blk-mq: move shared sbitmap into elevator queue
  scsi: Add template flag 'host_tagset'
  megaraid_sas: switch fusion adapters to MQ
  smartpqi: enable host tagset
  hpsa: enable host_tagset and switch to MQ

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                      |  12 +--
 block/blk-mq-sched.c                        |  22 +++++
 block/blk-mq-tag.c                          | 140 +++++++++++++++++++++-------
 block/blk-mq-tag.h                          |  27 ++++--
 block/blk-mq.c                              | 104 +++++++++++++++------
 block/blk-mq.h                              |   7 +-
 block/blk-sysfs.c                           |   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/hpsa.c                         |  44 ++-------
 drivers/scsi/hpsa.h                         |   1 -
 drivers/scsi/megaraid/megaraid_sas.h        |   1 -
 drivers/scsi/megaraid/megaraid_sas_base.c   |  65 ++++---------
 drivers/scsi/megaraid/megaraid_sas_fusion.c |  14 ++-
 drivers/scsi/scsi_lib.c                     |   2 +
 drivers/scsi/smartpqi/smartpqi_init.c       |  38 ++++++--
 include/linux/blk-mq.h                      |   7 +-
 include/linux/elevator.h                    |   3 +
 include/scsi/scsi_host.h                    |   3 +
 22 files changed, 380 insertions(+), 250 deletions(-)

-- 
2.16.4


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2020-02-26 11:09 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-02 15:39 [PATCH RFC v5 00/11] blk-mq/scsi: Provide hostwide shared tags for SCSI HBAs Hannes Reinecke
2019-12-02 15:39 ` [PATCH 01/11] blk-mq: Remove some unused function arguments Hannes Reinecke
2019-12-02 15:39 ` [PATCH 02/11] blk-mq: rename BLK_MQ_F_TAG_SHARED as BLK_MQ_F_TAG_QUEUE_SHARED Hannes Reinecke
2019-12-02 15:39 ` [PATCH 03/11] blk-mq: rename blk_mq_update_tag_set_depth() Hannes Reinecke
2019-12-03 14:30   ` John Garry
2019-12-03 14:53     ` Hannes Reinecke
2019-12-02 15:39 ` [PATCH 04/11] blk-mq: Facilitate a shared sbitmap per tagset Hannes Reinecke
2019-12-03 14:54   ` John Garry
2019-12-03 15:02     ` Hannes Reinecke
2019-12-04 10:24       ` John Garry
2019-12-03 16:38     ` Bart Van Assche
2019-12-02 15:39 ` [PATCH 05/11] blk-mq: add WARN_ON in blk_mq_free_rqs() Hannes Reinecke
2019-12-02 15:39 ` [PATCH 06/11] blk-mq: move shared sbitmap into elevator queue Hannes Reinecke
2019-12-02 15:39 ` [PATCH 07/11] scsi: Add template flag 'host_tagset' Hannes Reinecke
2019-12-02 15:39 ` [PATCH 08/11] scsi: hisi_sas: Switch v3 hw to MQ Hannes Reinecke
2019-12-02 15:39 ` [PATCH 09/11] megaraid_sas: switch fusion adapters " Hannes Reinecke
2019-12-09 10:10   ` Sumit Saxena
2019-12-09 11:02     ` Hannes Reinecke
2020-01-10  4:00       ` Sumit Saxena
2020-01-10 12:18         ` John Garry
2020-01-13 17:42         ` John Garry
2020-01-14  7:05           ` Hannes Reinecke
2020-01-16 15:47             ` John Garry
2020-01-16 17:45               ` Hannes Reinecke
2020-01-17 11:40             ` Sumit Saxena
2020-01-17 11:18           ` Sumit Saxena
2020-02-13 10:07             ` John Garry
2020-02-17 10:09               ` Sumit Saxena
2020-01-09 11:55     ` John Garry
2020-01-09 15:19       ` Hannes Reinecke
2020-01-09 18:17         ` John Garry
2020-01-10  2:00       ` Ming Lei
2020-01-10 12:09         ` John Garry
2020-01-14 13:57           ` John Garry
2019-12-02 15:39 ` [PATCH 10/11] smartpqi: enable host tagset Hannes Reinecke
2019-12-02 15:39 ` [PATCH 11/11] hpsa: enable host_tagset and switch to MQ Hannes Reinecke
2020-02-26 11:09 ` [PATCH RFC v5 00/11] blk-mq/scsi: Provide hostwide shared tags for SCSI HBAs John Garry

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.