Re: [PATCH V8 00/13] blk-mq/scsi: tracking device queue depth via sbitmap
From: "Martin K. Petersen" <martin.petersen@oracle.com>
Date: 2021-03-04 04:18:00
Also in:
linux-scsi
On Sun, 7 Feb 2021 17:20:16 +0800, Ming Lei wrote:
scsi uses one global atomic variable to track queue depth for each LUN/request queue. This way can't scale well when there is lots of CPU cores and the disk is very fast. Broadcom guys has complained that their high end HBA can't reach top performance because .device_busy is operated in IO path. Replace the atomic variable sdev->device_busy with sbitmap for tracking scsi device queue depth. [...]
Applied to 5.13/scsi-queue, thanks!
[01/13] sbitmap: remove sbitmap_clear_bit_unlock
https://git.kernel.org/mkp/scsi/c/46d2a5813454
[02/13] sbitmap: maintain allocation round_robin in sbitmap
https://git.kernel.org/mkp/scsi/c/ed9eb92974bc
[03/13] sbitmap: add helpers for updating allocation hint
https://git.kernel.org/mkp/scsi/c/a523156a9303
[04/13] sbitmap: move allocation hint into sbitmap
https://git.kernel.org/mkp/scsi/c/30d4ee6f3a9d
[05/13] sbitmap: export sbitmap_weight
https://git.kernel.org/mkp/scsi/c/d9ba7618bec3
[06/13] sbitmap: add helper of sbitmap_calculate_shift
https://git.kernel.org/mkp/scsi/c/5d747419d20e
[07/13] blk-mq: add callbacks for storing & retrieving budget token
https://git.kernel.org/mkp/scsi/c/9dda23635dbe
[08/13] blk-mq: return budget token from .get_budget callback
https://git.kernel.org/mkp/scsi/c/cd4ef15a289a
[09/13] scsi: put hot fields of scsi_host_template into one cacheline
https://git.kernel.org/mkp/scsi/c/a8474e7b28a0
[10/13] megaraid_sas: v2 replace sdev_busy with local counter
https://git.kernel.org/mkp/scsi/c/d7afc2ed1447
[11/13] scsi: add scsi_device_busy() to read sdev->device_busy
https://git.kernel.org/mkp/scsi/c/c300d1182331
[12/13] scsi: make sure sdev->queue_depth is <= max(shost->can_queue, 1024)
https://git.kernel.org/mkp/scsi/c/b0a4b45dc841
[13/13] scsi: replace sdev->device_busy with sbitmap
https://git.kernel.org/mkp/scsi/c/62b38e49fcf7
--
Martin K. Petersen Oracle Linux Engineering