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] pagetable maps itself


On 13 Mar 2005, at 15:21, David Becker wrote:

I'm trying to put the shared_info page entry(0x001b6007) in
a pte at 0xc0116404 and get
(XEN) DOM77: (file=memory.c, line=1821) PTWR failure! Pagetable maps itself at c0116404

Doubtless this is operator error, but I'm at a loss as to what my error is. I am confident the pte address is correct and that the domain build says the
share_info mfn is 0x1b6.

The pgd page entry for 0xc0116404 is 0x01c28067, which also appears OK.

I don't understand how my table is mapping itself when I write that pte.

It's a current weakness of the writable pagetable implementation -- if you try to directly write to a pagetable that maps itself then the usual wrpt implementation cannot work. It wants to temporarily make the page a non-pt page and make it writable: but it can't do both (think about it).

I will be fixing this in the unstable tree in the next few days, using my new instruction emulator to 'fill in' this unfortunate corner case and a few others. Shorter term, please use the batched interface (do_mmu_update) to add the mapping. I use that in preference to writable pagetables to update most kernel mappings in Linux right now, to avoid just the problem that you have just hit.

 -- Keir



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel

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