[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e6c7b33c-38ba-402b-abdc-b783d4402402@acm.org>
Date: Wed, 4 Oct 2023 10:34:13 -0700
From: Bart Van Assche <bvanassche@....org>
To: John Garry <john.g.garry@...cle.com>, axboe@...nel.dk,
kbusch@...nel.org, hch@....de, 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
Cc: 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
Subject: Re: [PATCH 10/21] block: Add fops atomic write support
On 10/4/23 02:14, John Garry wrote:
> On 03/10/2023 17:45, Bart Van Assche wrote:
>> On 10/3/23 01:37, John Garry wrote:
>>> I don't think that is_power_of_2(write length) is specific to XFS.
>>
>> I think this is specific to XFS. Can you show me the F2FS code that
>> restricts the length of an atomic write to a power of two? I haven't
>> found it. The only power-of-two check that I found in F2FS is the
>> following (maybe I overlooked something):
>>
>> $ git grep -nH is_power fs/f2fs
>> fs/f2fs/super.c:3914: if (!is_power_of_2(zone_sectors)) {
>
> Any usecases which we know of requires a power-of-2 block size.
>
> Do you know of a requirement for other sizes? Or are you concerned that
> it is unnecessarily restrictive?
>
> We have to deal with HW features like atomic write boundary and FS
> restrictions like extent and stripe alignment transparent, which are
> almost always powers-of-2, so naturally we would want to work with
> powers-of-2 for atomic write sizes.
>
> The power-of-2 stuff could be dropped if that is what people want.
> However we still want to provide a set of rules to the user to make
> those HW and FS features mentioned transparent to the user.
Hi John,
My concern is that the power-of-2 requirements are only needed for
traditional filesystems and not for log-structured filesystems (BTRFS,
F2FS, BCACHEFS).
What I'd like to see is that each filesystem declares its atomic write
requirements (in struct address_space_operations?) and that
blkdev_atomic_write_valid() checks the filesystem-specific atomic write
requirements.
Thanks,
Bart.
Powered by blists - more mailing lists