Messages in this thread |  | | Date | Thu, 6 Jun 96 00:24 BST | From | Jamie Lokier <> | Subject | Re: 1.3.100: My notes, as usual |
| |
>>>>> "Theodore" == Theodore Y Ts'o <tytso@mit.edu> writes:
Theodore> Actually, we could do something like this. I think it was Theodore> Alan Cox (or possibly Eric Young) who first suggested that Theodore> we could use the gcc attribute feature to put certain Theodore> procedure into a separate ELF section, so that at the end Theodore> of the boot sequence, those pages could be marked as being Theodore> reusable. It would require doing some GCC-specific Theodore> features, but it shouldn't require any special as or ld Theodore> hacks.
Or we could load everything as modules using initrd. I favour that anyway, as a way to safely autodetect all the hardware (at boot time), but still use modules to save run-time memory. I'm sure we could find some way to load the FPU emulator from /linuxrc, if it is the first thing loaded.
One way or another, you have to have some way of marking freeable kernel code to minimise memory usage. The module mechanism already exists, and will continue to be used for other things anyway. So why not use it at boot time too?
Longer term, we could look at ditching non-module versions of modularised drivers, for the sake of simplifying the code. All kernels could have a special initrd glued onto the end containing all the modules (and insmod, etc.), with the autodetect sequence distributed with the kernel source as a special linuxrc script. (So everything is probed in the right order). Perhaps a special, extra-simple read-only filesystem could be tacked on just for this.
I'm sure we can find a way not to waste the partially unused pages for modules loaded at boot time, too.
-- Jamie
|  |