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

[Xen-devel] Adding PTE Flag during Page Fault

To: Joe Laws <jlaws@xxxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Adding PTE Flag during Page Fault
From: Joe Laws <jlaws@xxxxxxxxxxxxxx>
Date: Sat, 14 Apr 2007 16:50:22 -0400
Delivery-date: Sat, 14 Apr 2007 13:47:42 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <46207388.4090406@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: <46207388.4090406@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.10 (X11/20070302)
I altered the method, "__spurious_page_fault", in "xen/arch/x86/traps.c"
to change a page to present when it is marked as not present.  I am
attempting to do this using the "l1e_add_flags(l1e, _PAGE_PRESENT);" 
definition call.  I then set it to return EXCRET_fault_fixed, so the
trap should have the client retry what it was doing with the changes I
made.  Unfortunately after it returns from the page fault to the user,
it immediately faults again on the same error at the same memory
location.  This means my "l1e_add_flags(l1e, _PAGE_PRESENT)" is not
actually updating the correct location in memory or  if it is, the
changes get discarded immediately.  Does anyone who is familiar with the
page_fault trap code have any idea why my change to the PTE is not
sticking.  I tried doing a TLB flush for the memory address, but the
same thing happens.  My only other guess is that the l1e defined in the
function is just a copy of the actual table entry, so I need to look
back further where l1e was defined.

Thanks,
Joe


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