On Thu, Feb 13, 2014 at 11:43 PM, Jan Kara <jack@xxxxxxx> wrote: > > max_sane_readahead() is also used for limiting amount of readahead for > [fm]advice(2) WILLNEED and that is used e.g. by a dynamic linker to preload > shared libraries into memory. So I'm convinced this usecase *will* notice > the change - effectively we limit preloading of shared libraries to the > first 512KB in the file but libraries get accessed in a rather random manner. > > Maybe limits for WILLNEED and for standard readahead should be different. > It makes sence to me and people seem to keep forgetting that > max_sane_readahead() limits also WILLNEED preloading. Good point. But it's probably overly complex to have two different limits. The "512kB" thing was entirely random - the only real issue is that it should be small enough that it won't be a problem on any reasonable current machines, and big enough to get perfectly fine IO patterns unless your IO subsystem sucks so bad that it's not even worth worrying about. If we just add a third requirement that it be "big enough that reasonable uses of [fm]advice() will work well enough", then your shared library example might well be grounds for saying "let's just do 2MB instead". That's still small enough that it won't really hurt any modern machines. And if it means that WILLNEED won't necessarily always read the whole file for big files - well, we never guaranteed that to begin with. Linus -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>