mbox series

[GIT,PULL,8/9] xfs: reduce iget overhead in scrub

Message ID 171392953196.1941278.2628285121167396370.stg-ugh@frogsfrogsfrogs (mailing list archive)
State Accepted, archived
Headers show
Series [GIT,PULL,1/9] xfs: shrink struct xfs_da_args | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/reduce-scrub-iget-overhead-6.10_2024-04-23

Message

Darrick J. Wong April 24, 2024, 3:35 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 c77b37584c2d1054452853e47e42c7350b8fe687:

xfs: introduce vectored scrub mode (2024-04-23 16:55:18 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/reduce-scrub-iget-overhead-6.10_2024-04-23

for you to fetch changes up to 4ad350ac58627bfe81f71f43f6738e36b4eb75c6:

xfs: only iget the file once when doing vectored scrub-by-handle (2024-04-23 16:55:18 -0700)

----------------------------------------------------------------
xfs: reduce iget overhead in scrub [v13.4 8/9]

This patchset looks to reduce iget overhead in two ways: First, a
previous patch conditionally set DONTCACHE on inodes during xchk_irele
on the grounds that we knew better at irele time if an inode should be
dropped.  Unfortunately, over time that patch morphed into a call to
d_mark_dontcache, which resulted in inodes being dropped even if they
were referenced by the dcache.  This actually caused *more* recycle
overhead than if we'd simply called xfs_iget to set DONTCACHE only on
misses.

The second patch reduces the cost of untrusted iget for a vectored scrub
call by having the scrubv code maintain a separate refcount to the inode
so that the cache will always hit.

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 (2):
xfs: use dontcache for grabbing inodes during scrub
xfs: only iget the file once when doing vectored scrub-by-handle

fs/xfs/scrub/common.c | 12 +++---------
fs/xfs/scrub/iscan.c  | 13 +++++++++++--
fs/xfs/scrub/scrub.c  | 45 +++++++++++++++++++++++++++++++++++++++++++++
fs/xfs/scrub/scrub.h  |  7 +++++++
4 files changed, 66 insertions(+), 11 deletions(-)