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] Odd mapping behavior with map_pages_to_xen

To: Arne Mejlholm <mejlholm@xxxxxxxxx>
Subject: Re: [Xen-devel] Odd mapping behavior with map_pages_to_xen
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Thu, 16 Mar 2006 14:53:46 +0000
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 16 Mar 2006 14:54:26 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4419751D.1070404@xxxxxxxxx>
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: <4419751D.1070404@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx

On 16 Mar 2006, at 14:24, Arne Mejlholm wrote:

Perhaps it should be noted that step 2 is carried out from within the idle_loop. Although it seems safe to exploit this idle state, could there be some assumptions that does not hold? Could it be that for reasons not evident to me, mapping pages into Xen during this idle time, is a bad idea and not safe?

About mapping pages into Xen, if I understand it correctly, Xen's 64MB address space is mapped into every page table for every process in every domain, so the virtual address allocated in step 1 should be accessible
in any context. Is this not the case?

Unfortunately you'll only be modifying the idle page table mappings. So if you are running on someone else's tables then you won't see the new mapping. This can easily happen even in the idle loop, because we lazily switch pagetables.

In fact, it would work if the xen heap were mapped with 4kB pages, but by default we map with 4MB superpages. So when you change a single 4kB mapping the superpage mapping needs replacing with a mapping of a new pagetable in the idle pgdir, and that update isn;t reflected in the current running pagetables.

If you build Xen with 'debug=y' option then I expect you'll find your code works fine. :-)

 -- Keir


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>