public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Dave Chinner <david@fromorbit.com>
Cc: "Darrick J. Wong" <djwong@kernel.org>,
	hch@lst.de, chandanbabu@kernel.org, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 1/5] xfs: don't treat append-only files as having preallocations
Date: Thu, 13 Jun 2024 10:28:55 +0200	[thread overview]
Message-ID: <20240613082855.GA22403@lst.de> (raw)
In-Reply-To: <ZmqLyfdH5KGzSYDY@dread.disaster.area>

On Thu, Jun 13, 2024 at 04:03:53PM +1000, Dave Chinner wrote:
> I disagree, there was a very good reason for this behaviour:
> preventing append-only log files from getting excessively fragmented
> because speculative prealloc would get removed on close().

Where is that very clear intent documented?  Not in the original
commit message (which is very sparse) and no where in any documentation
I can find.

> i.e. applications that slowly log messages to append only files
> with the pattern open(O_APPEND); write(a single line to the log);
> close(); caused worst case file fragmentation because the close()
> always removed the speculative prealloc beyond EOF.

That case should be covered by the XFS_IDIRTY_RELEASE, at least
except for O_SYNC workloads. 

> 
> The fix for this pessimisitic XFS behaviour is for the application
> to use chattr +A (like they would for ext3/4) hence triggering the
> existence of XFS_DIFLAG_APPEND and that avoided the removal
> speculative delalloc removed when the file is closed. hence the
> fragmentation problems went away.

For ext4 the EXT4_APPEND_FL flag does not cause any difference
in allocation behavior.  For the historic ext2 driver it apparently
did just, with an XXX comment marking this as a bug, but for ext3 it
also never did looking back quite a bit in history.


  reply	other threads:[~2024-06-13  8:29 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-12 17:46 [PATCHSET] xfs: random fixes for 6.10 Darrick J. Wong
2024-06-12 17:46 ` [PATCH 1/5] xfs: don't treat append-only files as having preallocations Darrick J. Wong
2024-06-13  6:03   ` Dave Chinner
2024-06-13  8:28     ` Christoph Hellwig [this message]
2024-06-17  5:03       ` Dave Chinner
2024-06-17  6:46         ` Christoph Hellwig
2024-06-17 23:28           ` Dave Chinner
2024-06-12 17:47 ` [PATCH 2/5] xfs: fix freeing speculative preallocations for preallocated files Darrick J. Wong
2024-06-12 17:47 ` [PATCH 3/5] xfs: restrict when we try to align cow fork delalloc to cowextsz hints Darrick J. Wong
2024-06-13  5:06   ` Christoph Hellwig
2024-06-14  4:13     ` Darrick J. Wong
2024-06-14  4:41       ` Christoph Hellwig
2024-06-14  5:27         ` Darrick J. Wong
2024-06-14  5:30           ` Christoph Hellwig
2024-06-12 17:47 ` [PATCH 4/5] xfs: allow unlinked symlinks and dirs with zero size Darrick J. Wong
2024-06-13  4:57   ` Christoph Hellwig
2024-06-12 17:47 ` [PATCH 5/5] xfs: verify buffer, inode, and dquot items every tx commit Darrick J. Wong
2024-06-13  5:07   ` Christoph Hellwig
2024-06-13  7:04   ` Dave Chinner
2024-06-14  3:49     ` Darrick J. Wong
2024-06-14  4:42       ` Christoph Hellwig
2024-06-14  5:23         ` Darrick J. Wong
2024-06-18  0:18   ` [PATCH v1.1 " Darrick J. Wong
2024-06-18  6:38     ` Christoph Hellwig

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=20240613082855.GA22403@lst.de \
    --to=hch@lst.de \
    --cc=chandanbabu@kernel.org \
    --cc=david@fromorbit.com \
    --cc=djwong@kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    /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