Jeremy Maitin-Shepard wrote:
Nick Piggin <nickpiggin@xxxxxxxxxxxx> writes:
Yes, I have a rough idea about how page reclaim works. But I just
mean it would not be trivial to load the new kernel into physically
discontiguous memory. Possible of course, but I don't think kexec or
the setup code could quite cope ATM.
It would indeed be a pain for the new kernel to be loaded and have to
use discontiguous memory. The trick is, though, that this is not
necessary. Immediately before jumping to the new kernel, the first X
bytes (where X is the amount of memory the new kernel will get,
typically 16MB or 64MB) of physical memory are backed up into the
arbitrary discontiguous pages that are made available. This will not
take very long, because copying even 64MB of memory is extremely fast.
Then the new kernel is free to use the first X bytes of contiguous
physical memory. Problem solved.
Ah, that sounds like it would be the right way to go. Good thinking.