Re: [PATCH] mm readahead: Fix sys_readahead breakage by reverting 2MB limit (bug 79111)

From: Linus Torvalds
Date: Thu Jul 03 2014 - 17:58:58 EST


On Thu, Jul 3, 2014 at 12:43 PM, John Stoffel <john@xxxxxxxxxxx> wrote:
>
> This is one of those perenial questions of how to tune this. I agree
> we should increase the number, but shouldn't it be based on both the
> amount of memory in the machine, number of devices (or is it all just
> one big pool?) and the speed of the actual device doing readahead?

Sure. But I don't trust the throughput data for the backing device at
all, especially early at boot. We're supposed to work it out for
writeback over time (based on device contention etc), but I never saw
that working, and for reading I don't think we have even any code to
do so.

And trying to be clever and basing the read-ahead size on the node
memory size was what caused problems to begin with (with memory-less
nodes) that then made us just hardcode the maximum.

So there are certainly better options - in theory. In practice, I
think we don't really care enough, and the better options are
questionably implementable.

I _suspect_ the right number is in that 2-8MB range, and I would
prefer to keep it at the low end at least until somebody really has
numbers (and preferably from different real-life situations).

I also suspect that read-ahead is less of an issue with non-rotational
storage in general, since the only real reason for it tends to be
latency reduction (particularly the "readahead()" kind of big-hammer
thing that is really just useful for priming caches). So there's some
argument to say that it's getting less and less important.

Linus
--
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/