From mboxrd@z Thu Jan 1 00:00:00 1970 From: Suravee Suthikulpanit Subject: Re: [PATCH] x86/ats: Disable Address Translation Services by default Date: Thu, 28 Aug 2014 02:08:11 -0500 Message-ID: <53FED55B.5030109@amd.com> References: <1408550481-31464-1-git-send-email-andrew.cooper3@citrix.com> <53F7563C020000780002CB46@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <53F7563C020000780002CB46@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich , Andrew Cooper Cc: Yang Z Zhang , Kevin Tian , Aravind Gopalakrishnan , Xen-devel List-Id: xen-devel@lists.xenproject.org Andrew/Jan, I have verified that PCI device pass-through works with ATS disabled. Although, could you please help described how "asynchronous queued invalidation support" supposed to work? Thanks, Suravee On 08/22/2014 07:39 AM, Jan Beulich wrote: >>>> On 20.08.14 at 18:01, wrote: >> 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 >> CC: Jan Beulich > > Even if not mandated by ./MAINTAINERS I think this definitely > should have been Cc-ed to the VT-d and AMD IOMMU maintainers > (now done). > > Jan > >> --- >> docs/misc/xen-command-line.markdown | 9 ++++++--- >> xen/drivers/passthrough/x86/ats.c | 2 +- >> 2 files changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/docs/misc/xen-command-line.markdown >> b/docs/misc/xen-command-line.markdown >> index a8cab59..5f4680f 100644 >> --- a/docs/misc/xen-command-line.markdown >> +++ b/docs/misc/xen-command-line.markdown >> @@ -176,10 +176,13 @@ developers wishing Xen to fall back to older timing >> methods on newer hardware. >> ### ats >> > `= ` >> >> -> 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 >> > `= ` >> diff --git a/xen/drivers/passthrough/x86/ats.c >> b/xen/drivers/passthrough/x86/ats.c >> index 1e3e03a..436eada 100644 >> --- a/xen/drivers/passthrough/x86/ats.c >> +++ b/xen/drivers/passthrough/x86/ats.c >> @@ -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) >> -- >> 1.7.10.4 > > >