public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] btrfs: enhancement to pass generic/563
@ 2025-01-14  9:52 Qu Wenruo
  2025-01-14  9:52 ` [PATCH 1/3] btrfs: make btrfs_do_readpage() to do block-by-block read Qu Wenruo
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Qu Wenruo @ 2025-01-14  9:52 UTC (permalink / raw)
  To: linux-btrfs

The test case generic/563 on aarch64 with 64K page size and 4K fs block
size will fail with btrfs, but not EXT4 nor XFS.

The detailed reason is explained in the last patch, the TL;DR is that
btrfs is not handling block aligned buffered write in an optimized way
for subpage cases (block size < page size).

The first patch is a refactor in preparation for the new enhancement.
The second patch is to solve the possible deadlock which can only be
exposed by the final enhancement.

Eventually the last patch will enable the enhancement and pass the
generic/563.

This series used to be mixed into this series:
https://lore.kernel.org/linux-btrfs/cover.1732492421.git.wqu@suse.com/

But unfortunately the ordered extent double accounting fix is not
solving all problems.
And since all the ordered extents double accounting is properly fixed in
for-next, we can come back to the subpage enhancement and focus on it.

Qu Wenruo (3):
  btrfs: make btrfs_do_readpage() to do block-by-block read
  btrfs: avoid deadlock when reading a partial uptodate folio
  btrfs: allow buffered write to avoid full page read if it's block
    aligned

 fs/btrfs/defrag.c       |  2 +-
 fs/btrfs/direct-io.c    |  2 +-
 fs/btrfs/extent_io.c    | 44 +++++++++++----------------
 fs/btrfs/file.c         | 13 ++++----
 fs/btrfs/inode.c        |  6 ++--
 fs/btrfs/ordered-data.c | 67 ++++++++++++++++++++++++++++++++++++-----
 fs/btrfs/ordered-data.h |  8 +++--
 7 files changed, 94 insertions(+), 48 deletions(-)

-- 
2.48.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-02-09  5:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-14  9:52 [PATCH 0/3] btrfs: enhancement to pass generic/563 Qu Wenruo
2025-01-14  9:52 ` [PATCH 1/3] btrfs: make btrfs_do_readpage() to do block-by-block read Qu Wenruo
2025-01-14  9:52 ` [PATCH 2/3] btrfs: avoid deadlock when reading a partial uptodate folio Qu Wenruo
2025-01-14  9:52 ` [PATCH 3/3] btrfs: allow buffered write to avoid full page read if it's block aligned Qu Wenruo
2025-01-28  1:30 ` [PATCH 0/3] btrfs: enhancement to pass generic/563 David Sterba
2025-02-09  5:18   ` Qu Wenruo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox