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

[Xen-devel] [PATCH 2 of 2] x86/VT-d: Sandy-Bridge BT98 Erratum



Reference:
http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e5-family-spec-update.pdf

Disable the IOMMU on affected systems.

Specifying iommu=no-intremap on the Xen command line will allow use of basic
VT-d functionality without suffering the system instability, albeit with the
security problems associated with disabling interrupt remapping.

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

diff -r 89ba0b0192c4 -r 9c2aed177e25 xen/drivers/passthrough/vtd/quirks.c
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -267,6 +267,27 @@ static void __init tylersburg_intremap_q
     }
 }
 
+/* Xeon E5 Family processors (Sandy-Bridge) suffer from erratum BT98, which
+ * affects Stepping C-1, but is reported fixed in Stepping C-2.
+ *
+ * This causes system instability when using x2apic and VT-d queued
+ * invalidation.  The workaround is to disable x2apic and VT-d.
+ */
+static void __init snb_bt98_erratum(void)
+{
+    const struct cpuinfo_x86 *c = &boot_cpu_data;
+
+    if ( !( c->x86_vendor == X86_VENDOR_INTEL &&
+            c->x86 == 6 &&
+            c->x86_model == 0x2d &&
+            c->x86_mask == 0x6 ) )
+        return;
+
+    printk(XENLOG_WARNING VTDPREFIX
+           " Disabling IOMMU due to Sandy-Bridge BT98 erratum\n");
+    iommu_enable = 0;
+}
+
 /* initialize platform identification flags */
 void __init platform_quirks_init(void)
 {
@@ -288,9 +309,12 @@ void __init platform_quirks_init(void)
     /* ioremap IGD MMIO+0x2000 page */
     map_igd_reg();
 
-    /* Tylersburg interrupt remap quirk */
+    /* Interrupt remapping quirks */
     if ( iommu_intremap )
+    {
         tylersburg_intremap_quirk();
+        snb_bt98_erratum();
+    }
 }
 
 /*

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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