Thread (19 messages) 19 messages, 10 authors, 2003-03-15

Re: 2.5.64-mm6

From: Andrew Morton <hidden>
Date: 2003-03-14 03:17:23
Also in: lkml

Steven Cole [off-list ref] wrote:
On Thu, 2003-03-13 at 12:34, Andrew Morton wrote:
quoted
Jeremy Fitzhardinge [off-list ref] wrote:
quoted
On Thu, 2003-03-13 at 03:26, Andrew Morton wrote:
quoted
  This means that when an executable is first mapped in, the kernel will
  slurp the whole thing off disk in one hit.  Some IO changes were made to
  speed this up.
Does this just pull in text and data, or will it pull any debug sections
too?  That could fill memory with a lot of useless junk.
Just text, I expect.  Unless glibc is mapping debug info with PROT_EXEC ;)

It's just a fun hack.  Should be done in glibc.
Well, fun hack or glibc to-do list candidate, I hope it doesn't get
forgotten.
I have to pull the odd party trick to get people to test -mm kernels.
I am happy to confirm that it did speed up the initial
launch time of Open Office from 20 seconds (2.5-bk) to 11 seconds (-mm6)
and Mozilla from 10 seconds (2.5-bk) to 6 seconds (-mm6).
OK, thanks for confirming that.  Both these apps are *very* compute-intensive
at startup.  Try starting them when everything is in cache...  The
proportional benefits for saner apps wil be larger.

As for glibc, yup, the two-liner which I mentioned is a good start.  Finer
tuning would involve looking at the data segments, dlopen(), etc.  A fun
project.

One subtlety: the linker (ld) lays files out very poorly.  So the prefaulting
trick will not help much when run against an executable which was written by
ld.  But if you've copied it into /bin (make install) then it will work well.
That's something to watch out for.


Doing it in madvise may work better actually.  madvise will pull the pages
into pagecache and leave them on the inactive list.  A subsequent minor fault
will activate the pages.  So the unneeded pages get thrown away quickly. 
Which is exactly what we want.

However -mm6 actually maps all the pages into the process's pagetables at
mmap() time.  That saves the cost of thousands of minor pagefaults, but it
means that the pages which we didn't really want will take longer to be
reclaimed.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help