Re: [PATCH v8 0/5] Initial support for multi-actuator HDDs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On  Monday, October 11, 2021 at 3:50:20 AM Damien Le Moal wrote:

>
>
>On 2021/09/09 11:35, 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 to 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.
>> Patch 5 fixes a typo in the document file (strictly speaking, not
>> related to this series).
>>
>> This series does not attempt in any way to optimize accesses to
>> multi-actuator devices (e.g. block IO schedulers or filesystems). This
>> initial support only exposes the independent access ranges information
>> to user space through sysfs.
>
>Jens,
>
>Any chance to get this merged for 5.16 ?
>

Jens-

It would be great to have Damien's patches merged in -- it's important for the multi-actuator support we've been adding to BFQ and ultimately for other schedulers or user-space to manage queue balance on SATA dual actuator. Thanks.

Best regards,
-Tim Walker
Seagate Research


>
>>
>> Changes from v7:
>> * Renamed functions to spell out "independent_access_range" instead of
>>   using contracted names such as iaranges. Structure fields names are
>>   changed to ia_ranges from iaranges.
>> * Added reviewed-by tags in patch 4 and 5
>>
>> Changes from v6:
>> * Changed patch 1 to prevent a device from registering overlapping
>>   independent access ranges.
>>
>> Changes from v5:
>> * Changed type names in patch 1:
>>   - struct blk_crange -> sturct blk_independent_access_range
>>   - struct blk_cranges -> sturct blk_independent_access_ranges
>>   All functions and variables are renamed accordingly, using shorter
>>   names related to the new type names, e.g.
>>   sturct blk_independent_access_ranges -> iaranges or iars.
>> * Update the commit message of patch 1 to 4. Patch 1 and 4 titles are
>>   also changed.
>> * Dropped reviewed-tags on modified patches. Patch 3 and 5 are
>>   unmodified
>>
>> Changes from v4:
>> * Fixed kdoc comment function name mismatch for disk_register_cranges()
>>   in patch 1
>>
>> Changes from v3:
>> * Modified patch 1:
>>   - Prefix functions that take a struct gendisk as argument with
>>     "disk_". Modified patch 2 accordingly.
>>   - Added a functional release operation for struct blk_cranges kobj to
>>     ensure that this structure is freed only after all references to it
>>     are released, including kobject_del() execution for all crange sysfs
>>     entries.
>> * Added patch 5 to separate the typo fix from the crange documentation
>>   addition.
>> * Added reviewed-by tags
>>
>> 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@xxxxxxxxx>).
>>
>> 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@xxxxxxxxx>
>>   Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx
>> * 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 (5):
>>   block: Add independent access ranges support
>>   scsi: sd: add concurrent positioning ranges support
>>   libata: support concurrent positioning ranges log
>>   doc: document sysfs queue/independent_access_ranges attributes
>>   doc: Fix typo in request queue sysfs documentation
>>
>>  Documentation/block/queue-sysfs.rst |  33 ++-
>>  block/Makefile                      |   2 +-
>>  block/blk-ia-ranges.c               | 348 ++++++++++++++++++++++++++++
>>  block/blk-sysfs.c                   |  26 ++-
>>  block/blk.h                         |   4 +
>>  drivers/ata/libata-core.c           |  57 ++++-
>>  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              |  39 ++++
>>  include/linux/libata.h              |  15 ++
>>  12 files changed, 634 insertions(+), 21 deletions(-)
>>  create mode 100644 block/blk-ia-ranges.c
>>
>
>
>--
>Damien Le Moal
>Western Digital Research
>





[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux