[PATCHSET v5 00/11] xfs: consolidate posteof and cowblocks cleanup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

Currently, we treat the garbage collection of post-EOF preallocations
and copy-on-write preallocations as totally separate tasks -- different
incore inode tags, different workqueues, etc.  This is wasteful of radix
tree tags and workqueue resources since we effectively have parallel
code paths to do the same thing.

Therefore, consolidate both functions under one radix tree bit and one
workqueue function that scans an inode for both things at the same time.
At the end of the series we make the scanning per-AG instead of per-fs
so that the scanning can run in parallel.  This reduces locking
contention from background threads and will free up a radix tree bit for
the deferred inode inactivation series.

More recent iterations of this patchset also rework the code to avoid
static predeclarations and take advantage of the evolutions of the
three previous patchsets.

v2: clean up and rebase against 5.11.
v3: various streamlining as part of restructuring the space reclaim series
v4: move the workqueue parallelism bits to their own series
v5: expose blockgc wq via sysfs and reduce iolock cycling.

If you're going to start using this mess, you probably ought to just
pull from my git trees, which are linked below.

This is an extraordinary way to destroy everything.  Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=eofblocks-consolidation-5.12
---
 Documentation/admin-guide/xfs.rst |    3 
 fs/xfs/scrub/common.c             |    4 -
 fs/xfs/xfs_globals.c              |    7 -
 fs/xfs/xfs_icache.c               |  295 ++++++++++++++++---------------------
 fs/xfs/xfs_icache.h               |   16 +-
 fs/xfs/xfs_ioctl.c                |    2 
 fs/xfs/xfs_linux.h                |    3 
 fs/xfs/xfs_mount.c                |    5 +
 fs/xfs/xfs_mount.h                |    9 +
 fs/xfs/xfs_super.c                |   23 +--
 fs/xfs/xfs_sysctl.c               |   15 --
 fs/xfs/xfs_sysctl.h               |    3 
 fs/xfs/xfs_trace.h                |    6 -
 13 files changed, 170 insertions(+), 221 deletions(-)




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux