[PATCH v2 00/16] block atomic writes
John Garry
john.g.garry at oracle.com
Thu Dec 21 01:49:35 PST 2023
On 21/12/2023 06:50, Christoph Hellwig wrote:
> On Tue, Dec 19, 2023 at 04:53:27PM +0000, John Garry wrote:
>> On 19/12/2023 15:17, Christoph Hellwig wrote:
>>> On Tue, Dec 19, 2023 at 12:41:37PM +0000, John Garry wrote:
>>>> How about something based on fcntl, like below? We will prob also require
>>>> some per-FS flag for enabling atomic writes without HW support. That flag
>>>> might be also useful for XFS for differentiating forcealign for atomic
>>>> writes with just forcealign.
>>> I would have just exposed it through a user visible flag instead of
>>> adding yet another ioctl/fcntl opcode and yet another method.
>>>
>>
>> Any specific type of flag?
>>
>> I would suggest a file attribute which we can set via chattr, but that is
>> still using an ioctl and would require a new inode flag; but at least there
>> is standard userspace support.
>
> I'd be fine with that, but we're kinda running out of flag there.
Yeah, in looking at e2fsprogs they are all used.
> That's why I suggested the FS_XFLAG_ instead, which basically works
> the same.
>
ok, fine, we can try that out.
On another topic, maybe you can advise..
I noticed the NVMe patch to stop always setting virt boundary (thanks),
but I am struggling for the wording for iovecs rules. I'd like to reuse
iov_iter_is_aligned() to enforce any such rule.
I am thinking:
- ubuf / iovecs need to be PAGE-aligned
- each iovec needs to be length of multiple of PAGE_SIZE
But that does not work for total length < PAGE_SIZE.
So then we could have:
- ubuf / iovecs need to be PAGE-aligned
- each iovec needs to be length of multiple of atomic_write_unit_min. If
total length > PAGE_SIZE, each iovec also needs to be a multiple of
PAGE_SIZE.
I'd rather something simpler. Maybe it's ok.
Thanks,
John
More information about the Linux-nvme
mailing list