|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH] x86-64 linux: unmap temporary mappings establish
On 1 Jun 2006, at 19:21, Keir Fraser wrote:
The temporary mappings needed to set up the 1:1 mappings must be torn
down after use; otherwise they may trigger the
WARN_ON() in vmap_pte_range() (namely if the chunk allocated to hold
kernel and initial page tables gets close to or
exceeds 128Mb, or if a sufficiently high mem= argument causes the
static allocations to grow beyond 128Mb, which in
either case means these mappings extend into the modules area).
I've applied this to -unstable, but in this patch I only see code to
destroy the extended init mappings. What happens if you have a really
big initrd (for example)? That will push the initial pagetables up
into the modules area -- is that handled correctly now or is more
fixup required?
Might it make sense to zap all init mappings (after kernel code/data)
in mem_init(), where we leave 'bootmem mode'? At that point initrd etc.
can all be accessed via the main 1:1 mapping. I think this should work
so long as we don't have any residual pointers to the init mapping
hanging around.
Another concern I have is that our x86/64 mm/init.c is still very
complicated and rather different from native mm/init.c (even though I
did clean it up a lot some time ago). I'm interested in any ideas about
how to reduce the complexity...
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|