From: Long Li <leo.lilong@huawei.com>
To: Dave Chinner <dchinner@redhat.com>
Cc: John Garry <john.g.garry@oracle.com>,
Dave Chinner <david@fromorbit.com>,
Ritesh Harjani <ritesh.list@gmail.com>, <chandan.babu@oracle.com>,
<djwong@kernel.org>, <hch@lst.de>, <viro@zeniv.linux.org.uk>,
<brauner@kernel.org>, <jack@suse.cz>, <linux-xfs@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-fsdevel@vger.kernel.org>,
<catherine.hoang@oracle.com>, <martin.petersen@oracle.com>
Subject: Re: [PATCH v4 00/14] forcealign for xfs
Date: Fri, 15 Nov 2024 19:20:09 +0800 [thread overview]
Message-ID: <ZzcuaYVuFuhknNs_@localhost.localdomain> (raw)
In-Reply-To: <ZzZYmTuSsHN-M0Of@rh>
On Fri, Nov 15, 2024 at 07:07:53AM +1100, Dave Chinner wrote:
> On Thu, Nov 14, 2024 at 08:48:21PM +0800, Long Li wrote:
> > On Wed, Sep 18, 2024 at 11:12:47AM +0100, John Garry wrote:
> > > On 17/09/2024 23:27, Dave Chinner wrote:
> > > > > # xfs_bmap -vvp mnt/file
> > > > > mnt/file:
> > > > > EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL FLAGS
> > > > > 0: [0..15]: 384..399 0 (384..399) 16 010000
> > > > > 1: [16..31]: 400..415 0 (400..415) 16 000000
> > > > > 2: [32..127]: 416..511 0 (416..511) 96 010000
> > > > > 3: [128..255]: 256..383 0 (256..383) 128 000000
> > > > > FLAG Values:
> > > > > 0010000 Unwritten preallocated extent
> > > > >
> > > > > Here we have unaligned extents wrt extsize.
> > > > >
> > > > > The sub-alloc unit zeroing would solve that - is that what you would still
> > > > > advocate (to solve that issue)?
> > > > Yes, I thought that was already implemented for force-align with the
> > > > DIO code via the extsize zero-around changes in the iomap code. Why
> > > > isn't that zero-around code ensuring the correct extent layout here?
> > >
> > > I just have not included the extsize zero-around changes here. They were
> > > just grouped with the atomic writes support, as they were added specifically
> > > for the atomic writes support. Indeed - to me at least - it is strange that
> > > the DIO code changes are required for XFS forcealign implementation. And,
> > > even if we use extsize zero-around changes for DIO path, what about buffered
> > > IO?
> >
> >
> > I've been reviewing and testing the XFS atomic write patch series. Since
> > there haven't been any new responses to the previous discussions on this
> > issue, I'd like to inquire about the buffered IO problem with force-aligned
> > files, which is a scenario we might encounter.
> >
> > Consider a case where the file supports force-alignment with a 64K extent size,
> > and the system page size is 4K. Take the following commands as an example:
> >
> > xfs_io -c "pwrite 64k 64k" mnt/file
> > xfs_io -c "pwrite 8k 8k" mnt/file
> >
> > If unaligned unwritten extents are not permitted, we need to zero out the
> > sub-allocation units for ranges [0, 8K] and [16K, 64K] to prevent stale
> > data. While this can be handled relatively easily in direct I/O scenarios,
> > it presents significant challenges in buffered I/O operations. The main
> > difficulty arises because the extent size (64K) is larger than the page
> > size (4K), and our current code base has substantial limitations in handling
> > such cases.
> >
> > Any thoughts on this?
>
> Large folios in the page cache solve this problem. i.e. it's the
> same problem that block size > page size support had to solve.
>
>
Thanks for your reply, it cleared up my confusion. So maybe we need
to set a minimum folio order for force-aligned inodes, just
like Large block sizes (LBS).
Thanks,
Long Li
prev parent reply other threads:[~2024-11-15 11:21 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-13 16:36 [PATCH v4 00/14] forcealign for xfs John Garry
2024-08-13 16:36 ` [PATCH v4 01/14] xfs: only allow minlen allocations when near ENOSPC John Garry
2024-08-23 16:28 ` Darrick J. Wong
2024-08-13 16:36 ` [PATCH v4 02/14] xfs: always tail align maxlen allocations John Garry
2024-08-23 16:31 ` Darrick J. Wong
2024-08-29 17:58 ` John Garry
2024-08-29 21:34 ` Darrick J. Wong
2024-08-13 16:36 ` [PATCH v4 03/14] xfs: simplify extent allocation alignment John Garry
2024-08-13 16:36 ` [PATCH v4 04/14] xfs: make EOF allocation simpler John Garry
2024-09-04 18:25 ` Ritesh Harjani
2024-09-05 7:51 ` John Garry
2024-08-13 16:36 ` [PATCH v4 05/14] xfs: introduce forced allocation alignment John Garry
2024-08-13 16:36 ` [PATCH v4 06/14] xfs: align args->minlen for " John Garry
2024-08-13 16:36 ` [PATCH v4 07/14] xfs: Introduce FORCEALIGN inode flag John Garry
2024-08-13 16:36 ` [PATCH v4 08/14] xfs: Update xfs_inode_alloc_unitsize() for forcealign John Garry
2024-08-13 16:36 ` [PATCH v4 09/14] xfs: Update xfs_setattr_size() " John Garry
2024-08-13 16:36 ` [PATCH v4 10/14] xfs: Do not free EOF blocks " John Garry
2024-08-13 16:36 ` [PATCH v4 11/14] xfs: Only free full extents " John Garry
2024-08-13 16:36 ` [PATCH v4 12/14] xfs: Unmap blocks according to forcealign John Garry
2024-08-23 16:35 ` Darrick J. Wong
2024-08-13 16:36 ` [PATCH v4 13/14] xfs: Don't revert allocated offset for forcealign John Garry
2024-08-13 16:36 ` [PATCH v4 14/14] xfs: Enable file data forcealign feature John Garry
2024-09-04 18:14 ` [PATCH v4 00/14] forcealign for xfs Ritesh Harjani
2024-09-04 23:20 ` Dave Chinner
2024-09-05 3:56 ` Ritesh Harjani
2024-09-05 6:33 ` Dave Chinner
2024-09-10 2:51 ` Ritesh Harjani
2024-09-16 6:33 ` Dave Chinner
2024-09-10 12:33 ` Ritesh Harjani
2024-09-16 7:03 ` Dave Chinner
2024-09-16 10:24 ` John Garry
2024-09-17 20:54 ` Darrick J. Wong
2024-09-17 23:34 ` Dave Chinner
2024-09-17 22:12 ` Dave Chinner
2024-09-18 7:59 ` John Garry
2024-09-23 2:57 ` Dave Chinner
2024-09-23 3:33 ` Christoph Hellwig
2024-09-23 8:16 ` John Garry
2024-09-23 12:07 ` Christoph Hellwig
2024-09-23 12:33 ` John Garry
2024-09-24 6:17 ` Christoph Hellwig
2024-09-24 9:48 ` John Garry
2024-11-29 11:36 ` John Garry
2024-09-23 8:00 ` John Garry
2024-09-05 10:15 ` John Garry
2024-09-05 21:47 ` Dave Chinner
2024-09-06 14:31 ` John Garry
2024-09-08 22:49 ` Dave Chinner
2024-09-09 16:18 ` John Garry
2024-09-16 5:25 ` Dave Chinner
2024-09-16 9:44 ` John Garry
2024-09-17 22:27 ` Dave Chinner
2024-09-18 10:12 ` John Garry
2024-11-14 12:48 ` Long Li
2024-11-14 16:22 ` John Garry
2024-11-14 20:07 ` Dave Chinner
2024-11-15 8:14 ` John Garry
2024-11-15 11:20 ` Long Li [this message]
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=ZzcuaYVuFuhknNs_@localhost.localdomain \
--to=leo.lilong@huawei.com \
--cc=brauner@kernel.org \
--cc=catherine.hoang@oracle.com \
--cc=chandan.babu@oracle.com \
--cc=david@fromorbit.com \
--cc=dchinner@redhat.com \
--cc=djwong@kernel.org \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=john.g.garry@oracle.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=martin.petersen@oracle.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;
as well as URLs for NNTP newsgroup(s).