summaryrefslogtreecommitdiff
tag nameeofblocks-consolidation-5.12_2021-02-01 (6a331fe65bc633a5d75adf0c020ddc788e587706)
tag date2021-02-01 17:57:18 -0800
tagged byDarrick J. Wong <djwong@kernel.org>
tagged objectcommit 0bb9876414...
xfs: consolidate posteof and cowblocks cleanup
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.