mbox series

[v4,0/3] xfs: set aside allocation btree blocks from block reservation

Message ID 20210423131050.141140-1-bfoster@redhat.com (mailing list archive)
Headers show
Series xfs: set aside allocation btree blocks from block reservation | expand

Message

Brian Foster April 23, 2021, 1:10 p.m. UTC
Hi all,

Here's v4 of the proposed allocbt block set aside fix. The patches have
been swizzled around a bit based on previous feedback to try and avoid
confusion over what bits are perag res related and not. This hopefully
facilitates analysis when it comes time to evaluate potential changes to
remove the current perag res mount time AG header scan behavior on which
this currently depends. Otherwise the actual code changes from v3 are
fairly light and documented in the changelog below. Thoughts, reviews,
flames appreciated.

Brian

v4:
- Fix up perag res logic to not skip pagf init on partial res failure.
- Split up set aside patch into separate counter mechanism and set aside
  policy patches.
- Drop unnecessary ->m_has_agresv flag as pagf's are always initialized
  on filesystems with active reservations.
v3: https://lore.kernel.org/linux-xfs/20210318161707.723742-1-bfoster@redhat.com/
- Use a mount flag for easy detection of active perag reservation.
- Filter rmapbt blocks from allocbt block accounting.
v2: https://lore.kernel.org/linux-xfs/20210222152108.896178-1-bfoster@redhat.com/
- Use an atomic counter instead of a percpu counter.
v1: https://lore.kernel.org/linux-xfs/20210217132339.651020-1-bfoster@redhat.com/

Brian Foster (3):
  xfs: unconditionally read all AGFs on mounts with perag reservation
  xfs: introduce in-core global counter of allocbt blocks
  xfs: set aside allocation btree blocks from block reservation

 fs/xfs/libxfs/xfs_ag_resv.c     | 34 ++++++++++++++++++++++-----------
 fs/xfs/libxfs/xfs_alloc.c       | 12 ++++++++++++
 fs/xfs/libxfs/xfs_alloc_btree.c |  2 ++
 fs/xfs/xfs_mount.c              | 15 ++++++++++++++-
 fs/xfs/xfs_mount.h              |  6 ++++++
 5 files changed, 57 insertions(+), 12 deletions(-)