Re: [PATCH v3 0/4] Initial support for multi-actuator HDDs

Damien Le Moal
2021-07-28T22:59:35Z

On 2021/07/26 10:38, Damien Le Moal wrote:
> Single LUN multi-actuator hard-disks are cappable to seek and execute
> multiple commands in parallel. This capability is exposed to the host
> using the Concurrent Positioning Ranges VPD page (SCSI) and Log (ATA).
> Each positioning range describes the contiguous set of LBAs that an
> actuator serves.
>
> This series adds support the scsi disk driver to retreive this
> information and advertize it to user space through sysfs. libata is also
> modified to handle ATA drives.
>
> The first patch adds the block layer plumbing to expose concurrent
> sector ranges of the device through sysfs as a sub-directory of the
> device sysfs queue directory. Patch 2 and 3 add support to sd and
> libata. Finally patch 4 documents the sysfs queue attributed changes.
>
> This series does not attempt in any way to optimize accesses to
> multi-actuator devices (e.g. block IO scheduler or filesystems). This
> initial support only exposes the actuators information to user space
> through sysfs.

Jens, Martin,

Any comment on this series ?

>
> Changes from v2:
> * Update patch 1 to fix a compilation warning for a potential NULL
> pointer dereference of the cr argument of blk_queue_set_cranges().
> Warning reported by the kernel test robot <lkp@intel.com>).
>
> Changes from v1:
> * Moved libata-scsi hunk from patch 1 to patch 3 where it belongs
> * Fixed unintialized variable in patch 2
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com
> * Changed patch 3 adding struct ata_cpr_log to contain both the number
> of concurrent ranges and the array of concurrent ranges.
> * Added a note in the documentation (patch 4) about the unit used for
> the concurrent ranges attributes.
>
> Damien Le Moal (4):
> block: Add concurrent positioning ranges support
> scsi: sd: add concurrent positioning ranges support
> libata: support concurrent positioning ranges log
> doc: document sysfs queue/cranges attributes
>
> Documentation/block/queue-sysfs.rst | 30 ++-
> block/Makefile | 2 +-
> block/blk-cranges.c | 295 ++++++++++++++++++++++++++++
> block/blk-sysfs.c | 13 ++
> block/blk.h | 3 +
> drivers/ata/libata-core.c | 52 +++++
> drivers/ata/libata-scsi.c | 48 ++++-
> drivers/scsi/sd.c | 81 ++++++++
> drivers/scsi/sd.h | 1 +
> include/linux/ata.h | 1 +
> include/linux/blkdev.h | 29 +++
> include/linux/libata.h | 15 ++
> 12 files changed, 559 insertions(+), 11 deletions(-)
> create mode 100644 block/blk-cranges.c
>

--
Damien Le Moal
Western Digital Research