xfs: defer agfl block frees
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest posting 2/26 patches 14 repliesIn review
- v2 RFC posting 1/29 patches 0 repliesSuperseded
- v1 RFC4 patches 12 repliesSuperseded
Changes in v2 from the cover letter
- Drop all refactoring/cleanup bits.
- Rename dfops pointer to ->t_agfl_dfops for explicit use by AGFL fixup code.
v1: https://marc.info/?l=linux-xfs&m=152338240213442&w=2
- Rebased to for-next.
- Attach dfops to tp via xfs_defer_init().
- Fix up xfs_defer_finish() to restore original pointer.
- Dropped debug/test patches.
rfcv2: https://marc.info/?l=linux-xfs&m=151681946702093&w=2
- Use transaction to carry deferred ops struct to allocation context.
- Remove dfops param from dir interfaces where possible.
- Defer AGFL block frees from more contexts.
- Define runtime stat for transaction regrant and logcount patch (to be potentially removed).
rfcv1: https://marc.info/?l=linux-xfs&m=151267309423883&w=2
Patches in v2 posting 2/2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/6 | xfs: create agfl block free helper functionfs/ fs/ | +29 | 1 reply | |
| 2/6 | xfs: defer agfl block frees when dfops is availablefs/ fs/ fs/ +3 more | +129 | 9 replies | |
| 3/6 | xfs: defer agfl block frees from deferred ops processing contextfs/ | +12 | 1 reply | |
| 4/6 | xfs: defer agfl frees from inode inactivationfs/ | +1 | 0 replies | |
| 5/6 | xfs: defer frees from common inode allocation pathsfs/ fs/ | +2 | 0 replies | |
| 6/6 | xfs: defer agfl frees from directory op transactionsfs/ | +3 | 3 replies |
Reviews trailers per patch
4 of 6 patches have a Reviewed-by or Acked-by.
| Patch | Dave Chinner | Christoph Hellwig | Darrick J. Wong |
|---|---|---|---|
| 1/6 | R-b | R-b | R-b |
| 2/6 | R-b | ||
| 3/6 | R-b | ||
| 4/6 | |||
| 5/6 | |||
| 6/6 | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.
Cover letter [PATCH v2 0/6] xfs: defer agfl block frees
Hi all,
This version drops all refactoring and cleanup changes related to the tp pointer to avoid confusion between functional fixes and cleanup work that was somewhat intertwined in the previous versions. Hence, the purpose of this series is now purely to enable deferred AGFL block frees. Because this behavior is enabled at transaction granularity, carry the dfops to the allocator via the transaction.
This avoids the need for the extra plumbing that was implemented in rfcv1 (and removed in rfcv2) and facilitates cleanups like those demonstrated in the previous version. I'll rename ->t_agfl_dfops to ->t_dfops and do the broader cleanup work in a separate series once this series is complete.
Thoughts, reviews, flames appreciated.
Brian
v2:
- Drop all refactoring/cleanup bits.
- Rename dfops pointer to ->t_agfl_dfops for explicit use by AGFL fixup code.
v1: https://marc.info/?l=linux-xfs&m=152338240213442&w=2
- Rebased to for-next.
- Attach dfops to tp via xfs_defer_init().
- Fix up xfs_defer_finish() to restore original pointer.
- Dropped debug/test patches.
rfcv2: https://marc.info/?l=linux-xfs&m=151681946702093&w=2
- Use transaction to carry deferred ops struct to allocation context.
- Remove dfops param from dir interfaces where possible.
- Defer AGFL block frees from more contexts.
- Define runtime stat for transaction regrant and logcount patch (to be potentially removed).
rfcv1: https://marc.info/?l=linux-xfs&m=151267309423883&w=2
Brian Foster (6):
xfs: create agfl block free helper function
xfs: defer agfl block frees when dfops is available
xfs: defer agfl block frees from deferred ops processing context
xfs: defer agfl frees from inode inactivation
xfs: defer frees from common inode allocation paths
xfs: defer agfl frees from directory op transactions
fs/xfs/libxfs/xfs_alloc.c | 82 +++++++++++++++++++++++++++++++++++++++------- fs/xfs/libxfs/xfs_alloc.h | 2 ++ fs/xfs/libxfs/xfs_defer.c | 12 +++++++ fs/xfs/libxfs/xfs_defer.h | 1 + fs/xfs/xfs_inode.c | 5 +++ fs/xfs/xfs_symlink.c | 1 + fs/xfs/xfs_trace.h | 2 ++ fs/xfs/xfs_trans.c | 11 +++++-- fs/xfs/xfs_trans.h | 1 + fs/xfs/xfs_trans_extfree.c | 70 +++++++++++++++++++++++++++++++++++++++ 10 files changed, 173 insertions(+), 14 deletions(-)
Signature · 1 line
2.13.6