From: "Xu, Quan" <quan.xu@intel.com> To: Jan Beulich <JBeulich@suse.com> Cc: "Tian, Kevin" <kevin.tian@intel.com>, "Wu, Feng" <feng.wu@intel.com>, Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>, George Dunlap <george.dunlap@eu.citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>, DarioFaggioli <dario.faggioli@citrix.com>, "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>, Julien Grall <julien.grall@arm.com>, Stefano Stabellini <stefano.stabellini@citrix.com>, "Nakajima, Jun" <jun.nakajima@intel.com>, Keir Fraser <keir@xen.org> Subject: Re: [PATCH 2/2] IOMMU/MMU: Adjust low level functions for VT-d Device-TLB flush error. Date: Mon, 11 Apr 2016 03:09:31 +0000 [thread overview] Message-ID: <945CA011AD5F084CBEA3E851C0AB28894B888180@SHSMSX101.ccr.corp.intel.com> (raw) In-Reply-To: <56FA4CA302000078000E0B5E@prv-mh.provo.novell.com> On March 29, 2016 3:37pm, Jan Beulich <JBeulich@suse.com> wrote: > >>> On 25.03.16 at 10:27, <quan.xu@intel.com> wrote: > > On March 18, 2016 6:20pm, <JBeulich@suse.com> wrote: > >> >>> On 17.03.16 at 07:54, <quan.xu@intel.com> wrote: > >> > --- a/xen/drivers/passthrough/iommu.c > >> > +++ b/xen/drivers/passthrough/iommu.c > >> > @@ -554,11 +555,24 @@ static void iommu_flush_all(void) > >> > iommu = drhd->iommu; > >> > iommu_flush_context_global(iommu, 0); > >> > flush_dev_iotlb = find_ats_dev_drhd(iommu) ? 1 : 0; > >> > - iommu_flush_iotlb_global(iommu, 0, flush_dev_iotlb); > >> > + rc = iommu_flush_iotlb_global(iommu, 0, flush_dev_iotlb); > >> > + > >> > + if ( rc > 0 ) > >> > + { > >> > + iommu_flush_write_buffer(iommu); > >> > >> Why is this needed all of the sudden? > > > > As there may be multiple IOMMUs. .e.g, there are 2 IOMMUs in my > > machine, and I can find the following log message: > > """ > > (XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB. > > (XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB. > > """ > > __iiuc__, iommu_flush_write_buffer() is per IOMMU, so It should be > > called to flush every IOMMU. > > For one what you say suggests that right now this is being done for some (one?) > IOMMU(s), which I don't see being the case. And then what you say _still_ > doesn't say _why_ this is now needed all of the sudden. If, in the course of > doing your re-work here, you find pre-existing issues with the code, please split > the necessary fixes out of your re-work and submit them separately with proper > explanations in their commit messages. > I find out it is no need modification for this function. I overlooked the parameter 'flush_non_present_entry', which is '0' to call iommu_flush_iotlb_global(). At the bottom of the call tree, (Existing code) >> In flush->iotlb(): { .... if ( flush_non_present_entry ) { if ( !cap_caching_mode(iommu->cap) ) return 1; else did = 0; } .... } << it is impossible to return '1', which is used to indicate caller needs to flush cache. Quan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-04-11 3:09 UTC|newest] Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-17 6:54 [PATCH 0/2] Check " Quan Xu 2016-03-17 6:54 ` [PATCH 1/2] IOMMU/MMU: Adjust top level functions for " Quan Xu 2016-03-17 7:32 ` Tian, Kevin 2016-03-17 7:58 ` Jan Beulich 2016-03-17 8:00 ` Tian, Kevin 2016-03-17 12:30 ` George Dunlap 2016-03-17 12:33 ` George Dunlap 2016-03-18 3:19 ` Xu, Quan 2016-03-18 8:09 ` Jan Beulich 2016-03-24 6:45 ` Xu, Quan 2016-03-18 7:54 ` Xu, Quan 2016-03-18 8:19 ` Jan Beulich 2016-03-18 9:09 ` Xu, Quan 2016-03-18 9:29 ` Jan Beulich 2016-03-18 9:38 ` Dario Faggioli 2016-03-18 9:48 ` Jan Beulich 2016-03-21 6:18 ` Tian, Kevin 2016-03-21 12:22 ` Jan Beulich 2016-03-24 9:02 ` Xu, Quan 2016-03-24 9:58 ` Jan Beulich 2016-03-24 14:12 ` Xu, Quan 2016-03-24 14:37 ` Jan Beulich 2016-03-17 17:14 ` Jan Beulich 2016-03-28 3:33 ` Xu, Quan 2016-03-29 7:20 ` Jan Beulich 2016-03-30 2:28 ` Xu, Quan 2016-03-30 2:35 ` Xu, Quan 2016-03-30 8:05 ` Jan Beulich 2016-03-17 6:54 ` [PATCH 2/2] IOMMU/MMU: Adjust low " Quan Xu 2016-03-17 7:37 ` Tian, Kevin 2016-03-18 2:30 ` Xu, Quan 2016-03-18 8:06 ` Jan Beulich 2016-03-21 5:01 ` Tian, Kevin 2016-03-17 15:31 ` George Dunlap 2016-03-18 6:57 ` Xu, Quan 2016-03-18 10:20 ` Jan Beulich 2016-03-25 9:27 ` Xu, Quan 2016-03-29 7:36 ` Jan Beulich 2016-04-11 3:09 ` Xu, Quan [this message] 2016-04-11 3:27 ` Xu, Quan 2016-04-11 16:34 ` Jan Beulich 2016-04-12 1:09 ` Xu, Quan
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=945CA011AD5F084CBEA3E851C0AB28894B888180@SHSMSX101.ccr.corp.intel.com \ --to=quan.xu@intel.com \ --cc=JBeulich@suse.com \ --cc=andrew.cooper3@citrix.com \ --cc=dario.faggioli@citrix.com \ --cc=feng.wu@intel.com \ --cc=george.dunlap@eu.citrix.com \ --cc=julien.grall@arm.com \ --cc=jun.nakajima@intel.com \ --cc=keir@xen.org \ --cc=kevin.tian@intel.com \ --cc=stefano.stabellini@citrix.com \ --cc=suravee.suthikulpanit@amd.com \ --cc=xen-devel@lists.xen.org \ --subject='Re: [PATCH 2/2] IOMMU/MMU: Adjust low level functions for VT-d Device-TLB flush error.' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).