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/
Home Products Support Community News


[Xen-devel] Re: Adding PTE Flag during Page Fault

To: Joe Laws <jlaws@xxxxxxxxxxxxxx>
Subject: [Xen-devel] Re: Adding PTE Flag during Page Fault
From: Joe Laws <jlaws@xxxxxxxxxxxxxx>
Date: Sat, 14 Apr 2007 17:29:17 -0400
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Sat, 14 Apr 2007 14:26:36 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <46213E8E.7070703@xxxxxxxxxxxxxx>
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> <46213E8E.7070703@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird (X11/20070302)
Tried changing the l1e by doing this:


Now it just causes Xen to crash and my computer to reboot. 
Unfortunately I can only see the output to the log by doing xm dmesg,
which gets cleared on every reboot.  Are there any efficient techniques
to get the latest xm dmesg output to file before the system crashes?


Joe Laws wrote:
> 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