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] Re: about fixup_page_fault

To: "Tian, Kevin" <kevin.tian@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Re: about fixup_page_fault
From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Date: Wed, 17 Dec 2008 08:23:25 +0000
Cc: "Yang, Xiaowei" <xiaowei.yang@xxxxxxxxx>
Delivery-date: Wed, 17 Dec 2008 00:23:32 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <0A882F4D99BBF6449D58E61AAFD7EDD603BB496D@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Aclf9g7ST2T7twmkTliVD2zN2EnoWgAKqw6y
Thread-topic: about fixup_page_fault
User-agent: Microsoft-Entourage/12.14.0.081024
On 17/12/2008 03:17, "Tian, Kevin" <kevin.tian@xxxxxxxxx> wrote:

> I guess I may miss sth important, but I don't understand below
> code at end of fixup_page_fault:
> 
>     if ( paging_mode_enabled(d) )
>     {
>         int ret = paging_fault(addr, regs);
>         if ( ret == EXCRET_fault_fixed )
>             trace_trap_two_addr(TRC_PV_PAGING_FIXUP, regs->eip, addr);
>         return ret;
>     }
> 
> Shouldn't a check upon guest_mode(regs) is required, since the
> fault may be triggered by xen itself? For example, a null pointer
> deference by xen code (not passed from guest) may not get chance
> to reach "fatal page fault" and instead a guest page fault could be
> injected per my reading...

Consider copy_from_guest() applied to a PV guest with dirty logging enabled.
The #PF handler should fix up faults when accessing guest address space via
shadow page tables, even when the access happens within Xen.

I haven't looked but I'm sure that the shadow code will only propagate the
fault, and return EXCRET_fault_fixed, if it sees the fault occurred in guest
context.

 -- Keir



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