mbox series

[GIT,PULL,22/23] xfs_scrub: vectorize kernel calls

Message ID 172230460022.1455085.11627065701892282147.stg-ugh@frogsfrogsfrogs (mailing list archive)
State Accepted, archived
Headers show
Series [GIT,PULL,01/23] libxfs: fixes for 6.9 | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git tags/vectorized-scrub-6.10_2024-07-29

Message

Darrick J. Wong July 30, 2024, 2:46 a.m. UTC
Hi Carlos,

Please pull this branch with changes for xfsprogs 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.

The following changes since commit 5a30504f0c60e10dc0cecd201c5afc18083fd0ac:

xfs_scrub: defer phase5 file scans if dirloop fails (2024-07-29 17:01:13 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git tags/vectorized-scrub-6.10_2024-07-29

for you to fetch changes up to df914edeeb1e1919831192951d657cfc73b46418:

xfs_scrub: try spot repairs of metadata items to make scrub progress (2024-07-29 17:01:13 -0700)

----------------------------------------------------------------
xfs_scrub: vectorize kernel calls [v30.9 22/28]

Create a vectorized version of the metadata scrub and repair ioctl, and
adapt xfs_scrub to use that.  This is an experiment to measure overhead
and to try refactoring xfs_scrub.

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 (10):
man: document vectored scrub mode
libfrog: support vectored scrub
xfs_io: support vectored scrub
xfs_scrub: split the scrub epilogue code into a separate function
xfs_scrub: split the repair epilogue code into a separate function
xfs_scrub: convert scrub and repair epilogues to use xfs_scrub_vec
xfs_scrub: vectorize scrub calls
xfs_scrub: vectorize repair calls
xfs_scrub: use scrub barriers to reduce kernel calls
xfs_scrub: try spot repairs of metadata items to make scrub progress

io/scrub.c                           | 368 +++++++++++++++++++++++++++++++----
libfrog/fsgeom.h                     |   6 +
libfrog/scrub.c                      | 137 +++++++++++++
libfrog/scrub.h                      |  35 ++++
man/man2/ioctl_xfs_scrubv_metadata.2 | 171 ++++++++++++++++
man/man8/xfs_io.8                    |  51 +++++
scrub/phase1.c                       |   2 +
scrub/phase2.c                       |  93 +++++++--
scrub/phase3.c                       |  84 ++++++--
scrub/repair.c                       | 355 ++++++++++++++++++++-------------
scrub/scrub.c                        | 360 +++++++++++++++++++++++++---------
scrub/scrub.h                        |  19 ++
scrub/scrub_private.h                |  55 ++++--
scrub/xfs_scrub.c                    |   1 +
14 files changed, 1431 insertions(+), 306 deletions(-)
create mode 100644 man/man2/ioctl_xfs_scrubv_metadata.2