Re: [PATCH] fadvise: perform WILLNEED readahead in a workqueue

From: Eric Wong
Date: Fri Feb 22 2013 - 16:13:19 EST


Phillip Susi <psusi@xxxxxxxxxx> wrote:
> > On Sat, Dec 15, 2012 at 12:54:48AM +0000, Eric Wong wrote:
> >> "strace -T" timing on an uncached, one gigabyte file:
> >>
> >> Before: fadvise64(3, 0, 0, POSIX_FADV_WILLNEED) = 0 <2.484832>
> >> After: fadvise64(3, 0, 0, POSIX_FADV_WILLNEED) = 0 <0.000061>
>
> It shouldn't take 2 seconds to queue up some async reads. Are you
> using ext3? The blocks have to be mapped in order to queue the reads,
> and without ext4 extents, this means the indirect blocks have to be
> read and can cause fadvise to block.

You're right, I originally tested on ext3.

I just tested an unpatched 3.7.9 kernel with ext4 and is much faster
(~250ms). I consider ~250ms acceptable for my needs. Will migrate
the rest of my setup to ext4 soon, thanks for the tip!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/