[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] [VTD][PATCH] Support intra-domain shared interrupt


  • To: "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Han, Weidong" <weidong.han@xxxxxxxxx>
  • Date: Thu, 8 Nov 2007 09:22:27 +0800
  • Cc: "Kay, Allen M" <allen.m.kay@xxxxxxxxx>
  • Delivery-date: Wed, 07 Nov 2007 17:23:18 -0800
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcgfbbYOsSWYB6MMQDuBGkYt+XjCJwAEwx4KAAASPxAAAXKGpgAAClDAAAJfMewAbWqM0AACgKoiAAAWh5AAAMMHUQAUf+DA
  • Thread-topic: [Xen-devel] [VTD][PATCH] Support intra-domain shared interrupt

Keir Fraser wrote:
> Can you extend the test at line 750 in arch/x86/mm/shadow/multi.c with
> ... &&
> !(mfn_valid(target_mfn)&&is_xen_heap_frame(mfn_to_page(target_mfn))) 
> 
> And see if that fixes it? I suspect that the VLAPIC access page is
> mapped uncacheable by HVM guests, and that uncacheability is getting
> passed through to the shadow pte if the guest has pass-thru devices.
> We should not pass thru cache attribute flags for xen heap pages as
> they should never be involved in real I/O.
> 

Yes, that fixes it. My modification is as follows:

diff -r d4c5a1cdcf2e xen/arch/x86/mm/shadow/multi.c
--- a/xen/arch/x86/mm/shadow/multi.c    Wed Nov 07 16:55:13 2007 +0000
+++ b/xen/arch/x86/mm/shadow/multi.c    Thu Nov 08 09:17:50 2007 +0800
@@ -748,7 +748,9 @@ _sh_propagate(struct vcpu *v,
      * caching attributes in the shadows to match what was asked for
      */
     if ( (level == 1) && is_hvm_domain(d) &&
-         !list_empty(&(domain_hvm_iommu(d)->pdev_list)) )
+         !list_empty(&(domain_hvm_iommu(d)->pdev_list)) &&
+         !(mfn_valid(target_mfn) &&
+           is_xen_heap_frame(mfn_to_page(target_mfn))) )
     {
         unsigned int type;
         if ( hvm_get_mem_pinned_cacheattr(d, gfn_x(target_gfn), &type)
)
 

Thanks
Weidong

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.