Linux block layer
 help / color / mirror / Atom feed
From: John Garry <john.g.garry@oracle.com>
To: Christoph Hellwig <hch@lst.de>
Cc: axboe@kernel.dk, brauner@kernel.org, djwong@kernel.org,
	viro@zeniv.linux.org.uk, jack@suse.cz, dchinner@redhat.com,
	cem@kernel.org, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, hare@suse.de,
	martin.petersen@oracle.com, catherine.hoang@oracle.com,
	mcgrof@kernel.org, ritesh.list@gmail.com, ojaswin@linux.ibm.com
Subject: Re: [PATCH v7 5/8] xfs: Support FS_XFLAG_ATOMICWRITES
Date: Fri, 4 Oct 2024 14:07:05 +0100	[thread overview]
Message-ID: <f4d2180a-8baa-4636-a0a1-36e474fcd157@oracle.com> (raw)
In-Reply-To: <20241004123520.GB19295@lst.de>

On 04/10/2024 13:35, Christoph Hellwig wrote:
> On Fri, Oct 04, 2024 at 09:22:51AM +0000, John Garry wrote:
>> Add initial support for new flag FS_XFLAG_ATOMICWRITES.
>>
>> This flag is a file attribute that mirrors an ondisk inode flag.  Actual
>> support for untorn file writes (for now) depends on both the iflag and the
>> underlying storage devices, which we can only really check at statx and
>> pwritev2() time.  This is the same story as FS_XFLAG_DAX, which signals to
>> the fs that we should try to enable the fsdax IO path on the file (instead
>> of the regular page cache), but applications have to query STAT_ATTR_DAX to
>> find out if they really got that IO path.
>>
>> Current kernel support for atomic writes is based on HW support (for atomic
>> writes). Since for regular files XFS has no way to specify extent alignment
>> or granularity, atomic write size is limited to the FS block size.
> 
> I'm still confused why this flag is needed for the current version
> of this patch set. 


> We should always be able to support atomic writes
> <= block size if support by the block device.
> 

Sure, that is true (about being able to atomically write 1x FS block if 
the bdev support it).

But if we are going to add forcealign or similar later, then it would 
make sense (to me) to have FS_XFLAG_ATOMICWRITES (and its other flags) 
from the beginning. I mean, for example, if FS_XFLAG_FORCEALIGN were 
enabled and we want atomic writes, setting FS_XFLAG_ATOMICWRITES would 
be rejected if AG count is not aligned with extsize, or extsize is not a 
power-of-2, or extsize exceeds bdev limits. So FS_XFLAG_ATOMICWRITES 
could have some value there.

As such, it makes sense to have a consistent user experience and require 
FS_XFLAG_ATOMICWRITES from the beginning.

Cheers,
John

  reply	other threads:[~2024-10-04 13:07 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-04  9:22 [PATCH v7 0/8] block atomic writes for xfs John Garry
2024-10-04  9:22 ` [PATCH v7 1/8] block/fs: Pass an iocb to generic_atomic_write_valid() John Garry
2024-10-04  9:22 ` [PATCH v7 2/8] fs: Export generic_atomic_write_valid() John Garry
2024-10-04  9:22 ` [PATCH v7 3/8] fs/block: Check for IOCB_DIRECT in generic_atomic_write_valid() John Garry
2024-10-04 12:34   ` Christoph Hellwig
2024-10-04 12:45     ` John Garry
2024-10-04  9:22 ` [PATCH v7 4/8] fs: iomap: Atomic write support John Garry
2024-10-04  9:22 ` [PATCH v7 5/8] xfs: Support FS_XFLAG_ATOMICWRITES John Garry
2024-10-04 12:35   ` Christoph Hellwig
2024-10-04 13:07     ` John Garry [this message]
2024-10-07  5:42       ` Christoph Hellwig
2024-10-13 21:06         ` John Garry
2024-10-16  0:52           ` Darrick J. Wong
2024-10-04  9:22 ` [PATCH v7 6/8] xfs: Support atomic write for statx John Garry
2024-10-04  9:22 ` [PATCH v7 7/8] xfs: Validate atomic writes John Garry
2024-10-04  9:22 ` [PATCH v7 8/8] xfs: Support setting FMODE_CAN_ATOMIC_WRITE John Garry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f4d2180a-8baa-4636-a0a1-36e474fcd157@oracle.com \
    --to=john.g.garry@oracle.com \
    --cc=axboe@kernel.dk \
    --cc=brauner@kernel.org \
    --cc=catherine.hoang@oracle.com \
    --cc=cem@kernel.org \
    --cc=dchinner@redhat.com \
    --cc=djwong@kernel.org \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=jack@suse.cz \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mcgrof@kernel.org \
    --cc=ojaswin@linux.ibm.com \
    --cc=ritesh.list@gmail.com \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox