Re: Downsides to madvise/fadvise(willneed) for application startup

From: Taras Glek
Date: Thu Apr 15 2010 - 20:41:56 EST


On 04/15/2010 03:53 PM, Andrew Morton wrote:
On Mon, 05 Apr 2010 15:43:02 -0700
Taras Glek<tglek@xxxxxxxxxxx> wrote:

To make matters worse,
the compile-time linker + gcc lay out code in a manner that does not
correspond to how the resulting executable will be executed(ie the
layout is basically random).
Yes, the linker scrambles the executable's block ordering.

This just isn't an interesting case. World-wide, the number of people
who compile their own web browser and execute it from the file which ld
produced is, umm, seven.
I'm sorry that you don't find this interesting. I did not suggest that people compile their own browser to get a perfect layout. This is something that Mozilla can do when preparing builds and it's also something distributions can do. It just so happens that large parts of startup will be very similar for every single firefox install, might as well layout the binary accordingly.
So I'd suggest that you always copy the executable to a temp file and
mv it back before running any timing tests.
You mean to get it into a cache or to hope to avoid fragmentation? If you are suggesting this to avoid measuring the startup overhead of paging the binary in, I strongly disagee. It is the slowest part of firefox startup and needs to be addressed.

Taras


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