diff options
author | Bernhard Voelker <mail@bernhard-voelker.de> | 2014-09-16 18:50:29 +0200 |
---|---|---|
committer | Bernhard Voelker <mail@bernhard-voelker.de> | 2014-09-16 18:50:29 +0200 |
commit | ed0c3c33c6f7c28e5f05e96e1891251bdd181651 (patch) | |
tree | 4269f4af3469274c413b27f9ff55a14c3637cdf8 /src/nice.c | |
parent | 3b1ac4b1edd6f56155196ce79e6a58c652f03f2f (diff) | |
download | coreutils-ed0c3c33c6f7c28e5f05e96e1891251bdd181651.tar.xz |
tests: fix false du failure on newer XFS
On XFS, when creating the ~2G test file 'big' in a for-loop by
appending 20M each time, the file ends up using ~4G - visible in
'st_blocks'. The unused space would be reclaimed later.
This feature is called "speculative preallocation" which aims at
avoiding fragmentation.
According to the XFS FAQ [1], there are two particular aspects of
XFS speculative preallocation that are triggering this:
1. "Applications that repeatedly trigger preallocation and reclaim
cycles [after file close] can cause fragmentation.
Therefore, this pattern is detected and causes the preallocation
to persist beyond the lifecycle of the file descriptor."
2. "Preallocation sizes grow as files grow larger."
[1] http://xfs.org/index.php/XFS_FAQ
Avoid one of the above by only doing a single close (reclaim cycle).
* tests/du/2g.sh: Similar to the fix for a dd test (see commit
v8.22-65-g7c03fe2), avoid speculative preallocation by creating
the 'big' file in one go instead of appending to it in the loop.
Remove debugging statements as the output with 'set -x' is
sufficient nowadays.
Diffstat (limited to 'src/nice.c')
0 files changed, 0 insertions, 0 deletions