[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b7f1b93a-08ea-07c8-d1da-5c2a31d1be80@oracle.com>
Date: Thu, 9 Nov 2023 17:01:10 +0000
From: John Garry <john.g.garry@...cle.com>
To: Christoph Hellwig <hch@....de>
Cc: axboe@...nel.dk, kbusch@...nel.org, sagi@...mberg.me,
jejb@...ux.ibm.com, martin.petersen@...cle.com, djwong@...nel.org,
viro@...iv.linux.org.uk, brauner@...nel.org,
chandan.babu@...cle.com, dchinner@...hat.com,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-nvme@...ts.infradead.org, linux-xfs@...r.kernel.org,
linux-fsdevel@...r.kernel.org, tytso@....edu, jbongio@...gle.com,
linux-api@...r.kernel.org,
Himanshu Madhani <himanshu.madhani@...cle.com>
Subject: Re: [PATCH 01/21] block: Add atomic write operations to request_queue
limits
On 09/11/2023 15:10, Christoph Hellwig wrote:
>> Documentation/ABI/stable/sysfs-block | 42 +++++++++++++++++++
>> block/blk-settings.c | 60 ++++++++++++++++++++++++++++
>> block/blk-sysfs.c | 33 +++++++++++++++
>> include/linux/blkdev.h | 33 +++++++++++++++
>> 4 files changed, 168 insertions(+)
>>
>> diff --git a/Documentation/ABI/stable/sysfs-block b/Documentation/ABI/stable/sysfs-block
>> index 1fe9a553c37b..05df7f74cbc1 100644
>> --- a/Documentation/ABI/stable/sysfs-block
>> +++ b/Documentation/ABI/stable/sysfs-block
>> @@ -21,6 +21,48 @@ Description:
>> device is offset from the internal allocation unit's
>> natural alignment.
>>
>> +What: /sys/block/<disk>/atomic_write_max_bytes
>> +Date: May 2023
>> +Contact: Himanshu Madhani<himanshu.madhani@...cle.com>
>> +Description:
>> + [RO] This parameter specifies the maximum atomic write
>> + size reported by the device. An atomic write operation
>> + must not exceed this number of bytes.
>> +What: /sys/block/<disk>/atomic_write_unit_max_bytes
>> +Date: January 2023
>> +Contact: Himanshu Madhani<himanshu.madhani@...cle.com>
>> +Description:
>> + [RO] This parameter defines the largest block which can be
>> + written atomically with an atomic write operation. This
>> + value must be a multiple of atomic_write_unit_min and must
>> + be a power-of-two.
> What is the difference between these two values?
Generally they come from the same device property. Then since
atomic_write_unit_max_bytes must be a power-of-2 (and
atomic_write_max_bytes may not be), they may be different. In addition,
atomic_write_unit_max_bytes is required to be limited by whatever is
guaranteed to be able to fit in a bio.
atomic_write_max_bytes is really only relevant for merging writes. Maybe
we should not even expose via sysfs.
BTW, I do still wonder whether all these values should be limited by
max_sectors_kb (which they aren't currently).
>
>
>> +Date: May 2023
>> +Contact: Himanshu Madhani<himanshu.madhani@...cle.com>
>> +Description:
>> + [RO] This parameter specifies the smallest block which can
>> + be written atomically with an atomic write operation. All
>> + atomic write operations must begin at a
>> + atomic_write_unit_min boundary and must be multiples of
>> + atomic_write_unit_min. This value must be a power-of-two.
> How can the minimum unit be anythіng but one logical block?
>
>> +extern void blk_queue_atomic_write_max_bytes(struct request_queue *q,
>> + unsigned int bytes);
> Please don't add pointless externs to prototypes in headers.
ok, fine - blkdev.h seems to have a mix for declarations with and
without extern, so at least we would be consistently inconsistent.
>
>> +static inline unsigned int queue_atomic_write_unit_max_bytes(const struct request_queue *q)
> .. and please avoid the overly long lines.
ok
Thanks,
John
>
Powered by blists - more mailing lists