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


Re: [Xen-devel] Every page fault caused pagetable walk when using xenopr

To: ZelluX <zellux@xxxxxx>
Subject: Re: [Xen-devel] Every page fault caused pagetable walk when using xenoprofile
From: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Date: Fri, 17 Jul 2009 10:20:06 +0100
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Fri, 17 Jul 2009 02:20:43 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <tencent_26F1D297476663C72404355F@xxxxxx>
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>
References: <tencent_26F1D297476663C72404355F@xxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.17 (2007-11-01)
At 08:15 +0100 on 17 Jul (1247818543), ZelluX wrote:
> ==== BLAH BLAH BLAH ====

Hey, the registers might have been useful! :)

> (XEN)    [<ffff828c80152cb6>] __copy_from_user_ll+0x26/0x40
> (XEN)    [<ffff828c801a5cba>] xenoprof_backtrace+0xfa/0x440
> (XEN)    [<ffff828c8011c105>] xenoprof_log_event+0xe5/0x1b0
> (XEN)    [<ffff828c801a584e>] ppro_check_ctrs+0x9e/0x120
> (XEN)    [<ffff828c801a47a9>] nmi_callback+0x29/0x80
> (XEN)    [<ffff828c8014e518>] do_nmi+0x38/0x100
> (XEN)    [<ffff828c801a6877>] handle_ist_exception+0x52/0x5b
> (XEN)
> (XEN) d0:v10: reserved bit in page table (ec=0009)
> (XEN) Pagetable walk from 0000000000402540:
> (XEN)  L4[0x000] = 000000056265c067 5555555555555555
> (XEN)  L3[0x000] = 000000056212b067 5555555555555555
> (XEN)  L2[0x002] = 000000056215d067 5555555555555555
> (XEN)  L1[0x002] = ffffffffffffffff ffffffffffffffff

That's the marker that the shadow pagetables use to register that they
know the equivalent guest L1 entry is not present.  It allows a
lock-free fast path in the shadow pagetable code to be keyed off the
pagefault error code.

In this case, it looks like xen is trying to copy data from a buffer in
dom0 that's not mapped, which causes a reserved-bit page fault, and
because the fault is taken in Xen context it prints a warning. 

Two things:

 - does xenoprofile normally get a lot of hypercalls returning EFAULT?
   Are you passing buffers to Xen that aren't mlock()ed?
 - does commenting out the call to reserved_bit_page_fault() in
   do_page_fault() make everything Just Work?  I think it should, but
   maybe Keir will disagree.



Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Citrix Systems (R&D) Ltd.
[Company #02300071, SL9 0DZ, UK.]

Xen-devel mailing list

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