Thread (5 messages) 5 messages, 3 authors, 2011-05-23

Re: [PATCH] ext4: do not normalize block requests from fallocate.

From: Ted Ts'o <tytso@mit.edu>
Date: 2011-05-23 01:11:25
Also in: lkml

On Fri, May 13, 2011 at 02:19:05PM -0700, Vivek Haldar wrote:
Currently, an fallocate request of size slightly larger than a power of
2 is turned into two block requests, each a power of 2, with the extra
blocks pre-allocated for future use. When an application calls
fallocate, it already has an idea about how large the file may grow so
there is usually little benefit to reserve extra blocks on the
preallocation list. This reduces disk fragmentation.

Tested: fsstress. Also verified manually that fallocat'ed files are
contiguously laid out with this change (whereas without it they begin at
power-of-2 boundaries, leaving blocks in between). CPU usage of
fallocate is not appreciably higher. In a tight fallocate loop, CPU
usage hovers between 5%-8% with this change, and 5%-7% without it.

Signed-off-by: Vivek Haldar <redacted>
Applied, with a minor change to avoid a bit assignment conflict with
the punch patches.

Also, I changed the commit message to note that using a file aging
simulator which filled the file system to 70%, the percentage of free
extents greater than 8MB (as measured using e2freefrag) increased from
38.8% without this commit, to 69.4% with this commit.

      	      	   	      	    	      - Ted
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help