Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-devel

Re: [Xen-devel] Live migration with MMIO pages

To: Kieran Mansley <kmansley@xxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] Live migration with MMIO pages
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Wed, 31 Oct 2007 16:44:14 +0000
Cc: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
Delivery-date: Wed, 31 Oct 2007 09:45:02 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <1193848479.4094.47.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Acgb3UUJg6iHK4fQEdyObAAX8io7RQ==
Thread-topic: [Xen-devel] Live migration with MMIO pages
User-agent: Microsoft-Entourage/11.3.6.070618
On 31/10/07 16:34, "Kieran Mansley" <kmansley@xxxxxxxxxxxxxx> wrote:

> Yes.  The reason it's failing is that sh_page_fault() in
> xen/arch/x86/mm/shadow/multi.c thinks it's a bad gfn:
> 
>     if ( !p2m_is_valid(p2mt) || (!(p2m_is_mmio(p2mt) || mfn_valid
> (gmfn))) )
>     {
>         perfc_incr(shadow_fault_bail_bad_gfn);
>         SHADOW_PRINTK("BAD gfn=%"SH_PRI_gfn" gmfn=%"PRI_mfn"\n",
>                       gfn_x(gfn), mfn_x(gmfn));
>         goto not_a_shadow_fault;
>     }
> 
> I think the problem is that set_mmio_p2m_entry() isn't getting called
> when the IO mapping is established.  There are three places where
> iomem_permit_access() is called:

No, basically that pagefault-handler check is nonsense for a PV guest. We
don't have a p2m table in Xen for PV guests because they are not 'translated
mode'. So there is nowhere for us to store the 'mmio' p2m type.

Perhaps Tim has a good idea what to do here. Adding a
!shadow_mode_translate() condition to the if statement would probably work
but I'm not sure it's the neatest answer.

 -- Keir



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