[PATCH 0/8] xfs: various fixes and cleanups

Dave Chinner
2020-03-25T01:42:09Z

Hi folks,

These are the fixes and cleanups that are part of the non-blocking
inode reclaim series I've (slowly) been working on. These fixes and
cleanups stand alone, many have already been reviewed, and getting
them out of the non-blocking reclaim patchset makes that a much
smaller and easier to digest set of patches.

The changes in this patchset are for:

- limiting the size of checkpoints that the CIL builds to reduce the
memory it pins and the latency of commits.
- cleaning up the AIL item removal code so we can reduce the number
of tail LSN updates to prevent unnecessary thundering herd wakeups
- account for reclaimable slab caches in XFS correctly
- account for reclaimed pages from buffers correctly
- avoiding log IO priority inversions
- factoring the inode cluster deletion code to make it more readable
and easier to modify for the non-blocking inode reclaim mods.

Thoughts, comments and improvemnts welcome.

-Dave.

Dave Chinner (8):
xfs: Lower CIL flush limit for large logs
xfs: Throttle commits on delayed background CIL push
xfs: don't allow log IO to be throttled
xfs: Improve metadata buffer reclaim accountability
xfs: correctly acount for reclaimable slabs
xfs: factor common AIL item deletion code
xfs: tail updates only need to occur when LSN changes
xfs: factor inode lookup from xfs_ifree_cluster

fs/xfs/xfs_buf.c | 11 ++-
fs/xfs/xfs_inode.c | 152 ++++++++++++++++++++++------------------
fs/xfs/xfs_inode_item.c | 28 ++++----
fs/xfs/xfs_log.c | 10 ++-
fs/xfs/xfs_log_cil.c | 37 ++++++++--
fs/xfs/xfs_log_priv.h | 53 ++++++++++++--
fs/xfs/xfs_super.c | 3 +-
fs/xfs/xfs_trace.h | 1 +
fs/xfs/xfs_trans_ail.c | 88 ++++++++++++++---------
fs/xfs/xfs_trans_priv.h | 6 +-
10 files changed, 257 insertions(+), 132 deletions(-)

--
2.26.0.rc2