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

To: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Subject: [Xen-devel] Re: about fixup_page_fault
From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Date: Wed, 17 Dec 2008 10:58:54 +0000
Cc: "Tian, Kevin" <kevin.tian@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Yang, Xiaowei" <xiaowei.yang@xxxxxxxxx>, Gianluca Guida <gianluca.guida@xxxxxxxxxxxxx>
Delivery-date: Wed, 17 Dec 2008 02:59:28 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20081217105345.GI460@xxxxxxxxxxxxxxxxxxxxx>
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: AclgNnOOuVDYJC0diUe8/ZzOTBxNrQ==
Thread-topic: about fixup_page_fault
User-agent: Microsoft-Entourage/
On 17/12/2008 10:53, "Tim Deegan" <Tim.Deegan@xxxxxxxxxx> wrote:

> At 09:04 +0000 on 17 Dec (1229504644), Keir Fraser wrote:
>> A Xen fault shouldn't cause a lookup in guest tables for HVM guests.
> Looks like it does, though. :(  The check in fixup_page_fault should
> probably be more like:

But wouldn't this just cause an infinite loop? Since shadow code would fix
up the fault in the guest shadow tables, which the hypervisor is not running

 -- Keir

> if ( (paging_mode_external(d) && guest_mode(regs))
>      || (paging_mode_enabled(d) && !paging_mode_external(d)) )
> That is, unconditionally call paging_fault() for PV guests (who
> shouldn't be allowed map the 0 page, right?), and call for HVM guests
> only if the guest caused the fault.
> Potentially it can all be tidied up a bit by moving the other
> HVM-specific call out of the if (IN_HYPERVISOR_RANGE) block at the top.

Xen-devel mailing list