public inbox for linux-block@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/6] Increase SCSI IOPS
@ 2025-12-16 22:30 Bart Van Assche
  2025-12-16 22:30 ` [PATCH v4 1/6] block: Rename busy_tag_iter_fn into blk_mq_rq_iter_fn Bart Van Assche
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Bart Van Assche @ 2025-12-16 22:30 UTC (permalink / raw)
  To: Martin K . Petersen
  Cc: linux-scsi, linux-block, John Garry, Hannes Reinecke,
	Christoph Hellwig, Damien Le Moal, Bart Van Assche

Hi Martin,

This patch series increases scsi_debug IOPS by 5% on my test setup by disabling
SCSI budget management if it is not needed. This patch series improves the
performance of many SCSI LLDs, including the UFS and ATA drivers. On my UFS 4
test setup this patch improves IOPS by 1% and reduces the time spent in
scsi_mq_get_budget() from 0.22% to 0.01%. The improvement for UFS 5 devices is
expected to be significantly larger than what I measured on my UFS 4 test setup.

Please consider this patch series for the next merge window.

Thanks,

Bart.

Changes compared to v3:
 - Instead of removing the use of cmd->budget_token from the ATA core, introduce
   the SCSI host flag .needs_budget_token and set it from the ATA core.

Changes compared to v2:
 - Fixed a hang during LUN scanning for ATA devices.

Changes compared to v1:
 - Added three block layer patches to introduce the function
   blk_mq_tagset_iter().
 - Applied the optimization not only for host-wide tags but also if there is
   only a single hardware queue.
 - Renamed scsi_device_check_in_flight() into scsi_device_check_allocated().
 - Added support for set->shared_tags == NULL in scsi_device_busy().
 
Bart Van Assche (6):
  block: Rename busy_tag_iter_fn into blk_mq_rq_iter_fn
  block: Introduce __blk_mq_tagset_iter()
  block: Introduce blk_mq_tagset_iter()
  ata: libata: Set .needs_budget_token
  scsi: core: Generalize scsi_device_busy()
  scsi: core: Improve IOPS in case of host-wide tags

 block/blk-mq-tag.c         | 67 ++++++++++++++++++++++++++------------
 block/blk-mq.h             |  4 +--
 drivers/ata/libata-scsi.c  |  1 +
 drivers/scsi/scsi.c        |  6 ++--
 drivers/scsi/scsi_lib.c    | 38 +++++++++++++++++++++
 drivers/scsi/scsi_scan.c   | 20 +++++++++++-
 include/linux/blk-mq.h     |  6 ++--
 include/scsi/scsi_device.h |  5 +--
 include/scsi/scsi_host.h   |  3 ++
 9 files changed, 116 insertions(+), 34 deletions(-)


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

end of thread, other threads:[~2025-12-20  0:28 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-16 22:30 [PATCH v4 0/6] Increase SCSI IOPS Bart Van Assche
2025-12-16 22:30 ` [PATCH v4 1/6] block: Rename busy_tag_iter_fn into blk_mq_rq_iter_fn Bart Van Assche
2025-12-16 22:30 ` [PATCH v4 2/6] block: Introduce __blk_mq_tagset_iter() Bart Van Assche
2025-12-16 22:30 ` [PATCH v4 3/6] block: Introduce blk_mq_tagset_iter() Bart Van Assche
2025-12-16 22:30 ` [PATCH v4 4/6] ata: libata: Set .needs_budget_token Bart Van Assche
2025-12-16 22:30 ` [PATCH v4 5/6] scsi: core: Generalize scsi_device_busy() Bart Van Assche
2025-12-16 22:30 ` [PATCH v4 6/6] scsi: core: Improve IOPS in case of host-wide tags Bart Van Assche
2025-12-17  3:24   ` Damien Le Moal
2025-12-19 17:35     ` Bart Van Assche
2025-12-19 23:06       ` Damien Le Moal
2025-12-20  0:05         ` Bart Van Assche
2025-12-20  0:13           ` Damien Le Moal
2025-12-20  0:28             ` Bart Van Assche

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox