Messages in this thread | | | Date | Mon, 19 Jul 1999 14:37:27 -0700 (PDT) | From | Jeremy Fitzhardinge <> | Subject | Re: [RFC] - Some notions that I would like comments on |
| |
On 19-Jul-99 Jamie Lokier wrote: > Jeremy Fitzhardinge wrote: >> I'm doing some work at the moment to restructure ELF files so that >> read-ahead is always the best thing to do. It collects usage >> statistics on the ELF file, and regroups it so that the pages appear >> on disk in the order in which they're used. This is primarily useful >> for speeding up the initial flurry of demand loading when you start up >> something big (eg, netscape). > > How do you regroup the ELF file? > By reordering disk blocks, or by changing the contents?
Initially I hoped that the filesystem would lay out blocks linearly on disk in the order which I wrote them, so I could merely rewrite the executable in the access order. This would have made use of disk readahead, but not necessarily filesystem readahead. Unfortunately I found this made little difference, but I haven't really looked into exactly how ext2 does its layout.
My current approach is to reorganize the ELF file itself. This is naturally more complex, but it does take advantage of the typical assumptions made in filesystem layout algorithms. Unfortunately it does generate rather atypical ELF files (hundreds of loadable segments), and I think I'm running into bugs in the libc dynamic linker.
Ideally this stuff would be done in linker with profile feedback, but this is an experiment to see what difference it really makes. I'm curious to see if all the mappings slows down runtime much too (which is really a test of the AVL code).
J
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |