WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] x86-64 linux: unmap temporary mappings establish

To: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] x86-64 linux: unmap temporary mappings established for setup of 1:1 mappings
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Thu, 1 Jun 2006 19:32:24 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, Jan Beulich <jbeulich@xxxxxxxxxx>
Delivery-date: Thu, 01 Jun 2006 11:32:51 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <368ae6e00389bbd4d2b4fdd55ddc5411@xxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <447DB394.76E4.0078.0@xxxxxxxxxx> <368ae6e00389bbd4d2b4fdd55ddc5411@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx

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