Hi again,
I got no comments -- doesn't matter :-)
Anyway, I hacked Milo to load the kernel file with a single
read() call, and what shall I say...
Kernel load time for 728019 bytes on my Magnum 4000:
before: 300 seconds
after: 26 seconds
and Milo is some kbytes smaller now, too.
To the ELF hackers: elf_open_kernel() isn't necessary
anymore. You just need to write elf_load_kernel the
same way as aout_load_kernel() now works:
- get kernel filesize
- malloc filesize bytes
- read complete file
- copy exec header into struct kexec
- set pointer to symbols
- return pointer to kernel text
That's it.
Cheers,
Andy
-----------------------------------------------------------
Andreas Busse | andy@waldorf-gmbh.de
Waldorf Electronics GmbH, R&D Dep. | Phone: +49 2636-970105
Neustrasse 9-12, D-53498 Waldorf | Fax: +49 2636-970106
-----------------------------------------------------------
|