Here is v4 of the speculative preallocation quota throttling set. Patch 3 of v3
is dropped due to a redundancy and a few changes are made to the threshold
management code (patch 4/6). The remaining patches are unchanged from v3.
- Drop patch 3/7 from v3 (xfs: cap prealloc size to free space before shift).
- Several updates to patch 4/6:
- Rename xfs_dquot_init_prealloc() to xfs_dquot_set_prealloc_limits().
- Unroll the prealloc threshold loop and remove the increment def.
- Fix up some comments.
- Rebased on top of updated speculative preallocation algorithm.
- Fix up xfs_iomap_prealloc_size() rounding (patch 2).
- Add pre-calculated fields to xfs_dquot to support throttling.
- Move to logarithmic (shift) throttler and finer tuned trigger/throttle logic.
Brian Foster (6):
xfs: reorganize xfs_iomap_prealloc_size to remove indentation
xfs: push rounddown_pow_of_two() to after prealloc throttle
xfs: pass xfs_dquot to xfs_qm_adjust_dqlimits() instead of
xfs: xfs_dquot prealloc throttling watermarks and low free space
xfs: add quota-driven speculative preallocation throttling
xfs: xfs_iomap_prealloc_size() tracepoint
fs/xfs/xfs_dquot.c | 44 ++++++++++++-
fs/xfs/xfs_dquot.h | 14 ++++-
fs/xfs/xfs_iomap.c | 161 +++++++++++++++++++++++++++++++++++++---------
fs/xfs/xfs_qm.c | 2 +-
fs/xfs/xfs_qm_syscalls.c | 1 +
fs/xfs/xfs_trace.h | 24 +++++++
fs/xfs/xfs_trans_dquot.c | 2 +-
7 files changed, 212 insertions(+), 36 deletions(-)