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-changelog

[Xen-changelog] [xen-unstable] vtd: check and print EPT compatibility on

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] vtd: check and print EPT compatibility once, at boot.
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Tue, 26 Apr 2011 04:00:10 +0100
Delivery-date: Mon, 25 Apr 2011 20:00:22 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Tim Deegan <Tim.Deegan@xxxxxxxxxx>
# Date 1303733825 -3600
# Node ID 80401982465d36161e981acff77d6e66cfeb8bf0
# Parent  eb4505f8dd97f894ee4b4e1b55ea1272c05e6759
vtd: check and print EPT compatibility once, at boot.

Merge the check for EPT/VT-D pagetable compatibility into the other
VT-D boot-time checks.  Previously it was checking and printing many
times on each VM boot.

Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
---


diff -r eb4505f8dd97 -r 80401982465d xen/drivers/passthrough/vtd/iommu.c
--- a/xen/drivers/passthrough/vtd/iommu.c       Wed Apr 20 12:02:51 2011 +0100
+++ b/xen/drivers/passthrough/vtd/iommu.c       Mon Apr 25 13:17:05 2011 +0100
@@ -1737,28 +1737,6 @@
     return 1;
 }
 
-static bool_t vtd_ept_share(void)
-{
-    struct acpi_drhd_unit *drhd;
-    struct iommu *iommu;
-    bool_t share = TRUE;
-
-    /* sharept defaults to 0 for now, default to 1 when feature matures */
-    if ( !iommu_hap_pt_share )
-        share = FALSE;
-
-    /*
-     * Determine whether EPT and VT-d page tables can be shared or not.
-     */
-    for_each_drhd_unit ( drhd )
-    {
-        iommu = drhd->iommu;
-        if ( !vtd_ept_page_compatible(drhd->iommu) )
-            share = FALSE;
-    }
-    return share;
-}
-
 /*
  * set VT-d page table directory to EPT table if allowed
  */
@@ -1769,17 +1747,11 @@
 
     ASSERT( is_hvm_domain(d) && d->arch.hvm_domain.hap_enabled );
 
-    iommu_hap_pt_share = vtd_ept_share();
     if ( !iommu_hap_pt_share )
-        goto out;
+        return;
 
     pgd_mfn = pagetable_get_mfn(p2m_get_pagetable(p2m_get_hostp2m(d)));
     hd->pgd_maddr = pagetable_get_paddr(pagetable_from_mfn(pgd_mfn));
-
-out:
-    dprintk(XENLOG_INFO VTDPREFIX,
-            "VT-d page table %s with EPT table\n",
-            iommu_hap_pt_share ? "shares" : "not sharing");
 }
 
 static int domain_rmrr_mapped(struct domain *d,
@@ -2080,6 +2052,9 @@
         if ( iommu_intremap && !ecap_intr_remap(iommu->ecap) )
             iommu_intremap = 0;
 
+        if ( !vtd_ept_page_compatible(iommu) )
+            iommu_hap_pt_share = FALSE;
+
         ret = iommu_set_interrupt(iommu);
         if ( ret < 0 )
         {
@@ -2101,6 +2076,7 @@
     P(iommu_passthrough, "Dom0 DMA Passthrough");
     P(iommu_qinval, "Queued Invalidation");
     P(iommu_intremap, "Interrupt Remapping");
+    P(iommu_hap_pt_share, "Shared EPT tables");
 #undef P
 
     scan_pci_devices();

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] vtd: check and print EPT compatibility once, at boot., Xen patchbot-unstable <=