x86/ats: Disable Address Translation Services by default
authorAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 28 Aug 2014 14:05:10 +0000 (16:05 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 28 Aug 2014 14:05:10 +0000 (16:05 +0200)
Xen cannot safely use any ATS functionality until it gains asynchronous queued
invalidation support, because of the current synchronous wait for completion.

Do not turn ATS on by default.

While editing the default in the command line documentation, correct the
statement regarding PCI Passthrough.  ATS is purely a performance
optimisation, and is certainly not required for PCI Passthrough to function.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
docs/misc/xen-command-line.markdown
xen/drivers/passthrough/x86/ats.c

index a8cab59eaa05b259b74d329fa2f26328a1143989..5f4680fe1ad6af2c37ff4df3b2efd5cf491e8291 100644 (file)
@@ -176,10 +176,13 @@ developers wishing Xen to fall back to older timing methods on newer hardware.
 ### ats
 > `= <boolean>`
 
-> Default: `true`
+> Default: `false`
+
+Permits Xen to set up and use PCI Address Translation Services.  This is a
+performance optimisation for PCI Passthrough.
 
-Permits Xen to set up and use PCI Address Translation Services, which
-is required for PCI Passthrough.
+**WARNING: Xen cannot currently safely use ATS because of its synchronous wait
+loops for Queued Invalidation completions.**
 
 ### availmem
 > `= <size>`
index 1e3e03ab404b0fb2469a368d106ec2149f3b6676..436eadac614b44793ccd24b1990b225c7d966e1f 100644 (file)
@@ -20,7 +20,7 @@
 
 LIST_HEAD(ats_devices);
 
-bool_t __read_mostly ats_enabled = 1;
+bool_t __read_mostly ats_enabled = 0;
 boolean_param("ats", ats_enabled);
 
 int enable_ats_device(int seg, int bus, int devfn, const void *iommu)