mbox series

[GIT,PULL,14/16] xfs: less heavy locks during fstrim

Message ID 171322719318.141687.811300841551086343.stg-ugh@frogsfrogsfrogs (mailing list archive)
State New
Headers show
Series [GIT,PULL,01/16] xfs: improve log incompat feature handling | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/discard-relax-locks-6.10_2024-04-15

Message

Darrick J. Wong April 16, 2024, 12:33 a.m. UTC
Hi Chandan,

Please pull this branch with changes for xfs for 6.10-rc1.

As usual, I did a test-merge with the main upstream branch as of a few
minutes ago, and didn't see any conflicts.  Please let me know if you
encounter any problems.

--D

The following changes since commit 1a5f6e08d4e379a23da5be974aee50b26a20c5b0:

xfs: create subordinate scrub contexts for xchk_metadata_inode_subtype (2024-04-15 14:59:00 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/discard-relax-locks-6.10_2024-04-15

for you to fetch changes up to b0ffe661fab4b939e4472ef96b8dac3c74e0e03e:

xfs: fix performance problems when fstrimming a subset of a fragmented AG (2024-04-15 14:59:00 -0700)

----------------------------------------------------------------
xfs: less heavy locks during fstrim [v30.3 14/16]

Congratulations!  You have made it to the final patchset of the main
online fsck feature!  This patchset fixes some stalling behavior that I
observed when running FITRIM against large flash-based filesystems with
very heavily fragmented free space data.  In summary -- the current
fstrim implementation optimizes for trimming the largest free extents
first, and holds the AGF lock for the duration of the operation.  This
is great if fstrim is being run as a foreground process by a sysadmin.

For xfs_scrub, however, this isn't so good -- we don't really want to
block on one huge kernel call while reporting no progress information.
We don't want to hold the AGF so long that background processes stall.
These problems are easily fixable by issuing smaller FITRIM calls, but
there's still the problem of walking the entire cntbt.  To solve that
second problem, we introduce a new sub-AG FITRIM implementation.  To
solve the first problem, make it relax the AGF periodically.

This has been running on the djcloud for months with no problems.  Enjoy!

Signed-off-by: Darrick J. Wong <djwong@kernel.org>

----------------------------------------------------------------
Darrick J. Wong (1):
xfs: fix performance problems when fstrimming a subset of a fragmented AG

fs/xfs/xfs_discard.c | 153 +++++++++++++++++++++++++++++++--------------------
1 file changed, 93 insertions(+), 60 deletions(-)