xfs
[Top] [All Lists]

[PATCH 0/5] xfs: run eofblocks scan on ENOSPC

To: xfs@xxxxxxxxxxx
Subject: [PATCH 0/5] xfs: run eofblocks scan on ENOSPC
From: Brian Foster <bfoster@xxxxxxxxxx>
Date: Fri, 28 Mar 2014 09:15:58 -0400
Delivered-to: xfs@xxxxxxxxxxx
Hi all,

The purpose of this series is to help address the inefficient use of
preallocation for larger files on smaller filesystems. When the
filesystem is small, so is the 5% low free space threshold that enables
preallocation throttling. When the low free space threshold is reduced
to a couple GB or so, we can ram into ENOSPC prematurely due to larger,
active preallocations.

We resolve this condition with an eofblocks scan in the pre-existing
ENOSPC retry write sequence. The scan resets outstanding preallocations
such that throttling is guaranteed an opportunity to manage future
preallocations gracefully into ENOSPC and thus ensures closer to 100%
utilization before ENOSPC is reported to userspace.

Patches 1-3 make some small enhancements to the eofblocks scanner that
facilitate running a scan in the context of a write. Patch 4 adds the
actual scan-on-ENOSPC policy. Patch 5 updates the preallocation
throttling algorithm to take quota free space into account.

Thoughts, reviews, flames appreciated.

Brian

Brian Foster (5):
  xfs: do eofb filtering before dirty check
  xfs: add flush flag to xfs_eofblocks
  xfs: add scan owner field to xfs_eofblocks
  xfs: run an eofblocks scan on ENOSPC/EDQUOT
  xfs: squash prealloc while over quota free space as well

 fs/xfs/xfs_dquot.h  | 15 +++++++++
 fs/xfs/xfs_file.c   | 32 +++++++++++++++++--
 fs/xfs/xfs_fs.h     |  4 ++-
 fs/xfs/xfs_icache.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++------
 fs/xfs/xfs_icache.h |  3 ++
 fs/xfs/xfs_iomap.c  | 20 ++++++++----
 6 files changed, 145 insertions(+), 19 deletions(-)

-- 
1.8.3.1

<Prev in Thread] Current Thread [Next in Thread>