[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Odd mapping behavior with map_pages_to_xen

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



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.