[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 00/13] "Non-shared" IOMMU support on ARM
Hi, Kevin On Wed, Aug 2, 2017 at 9:12 AM, Tian, Kevin <kevin.tian@xxxxxxxxx> wrote: >> From: Oleksandr Tyshchenko [mailto:olekstysh@xxxxxxxxx] >> Sent: Tuesday, August 1, 2017 7:08 PM >> >> Hi, Kevin >> >> On Tue, Aug 1, 2017 at 6:06 AM, Tian, Kevin <kevin.tian@xxxxxxxxx> wrote: >> >> From: Oleksandr Tyshchenko [mailto:olekstysh@xxxxxxxxx] >> >> Sent: Monday, July 31, 2017 7:58 PM >> >> >> >> Hi, Kevin >> >> >> >> On Mon, Jul 31, 2017 at 8:57 AM, Tian, Kevin <kevin.tian@xxxxxxxxx> >> wrote: >> >> >> From: Oleksandr Tyshchenko >> >> >> Sent: Wednesday, July 26, 2017 1:27 AM >> >> >> >> >> >> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx> >> >> >> >> >> >> Hi, all. >> >> >> >> >> >> The purpose of this patch series is to create a base for porting >> >> >> any "Non-shared" IOMMUs to Xen on ARM. Saying "Non-shared" >> IOMMU >> >> I >> >> >> mean >> >> >> the IOMMU that can't share the page table with the CPU. >> >> > >> >> > Is "non-shared" IOMMU a standard terminology in ARM side? I quickly >> >> > searched to find it mostly used in this thread... >> >> I don't think that it is a standard terminology. >> >> >> >> > >> >> > On the other hand, all IOMMUs support a basic DMA remapping >> >> > mechanism with page table not shared with CPU. Then some IOMMUs >> >> > may optional support Shared Virtual Memory (SVM) through page >> >> > sharing with CPU. Then I'm not sure why need to highlight the >> >> > "non-shared" manner in this thread, instead of just saying >> >> > IPMMU-VMSA support... >> >> I wouldn't use "IPMMU-VMSA support" in this thread since it may be any >> >> other IOMMUs which can't share page table >> >> with CPU because of format incompatibilities. >> > >> > As I commented you can assume all IOMMUs cannot share page >> > table with CPU as the starting point. It's not good to name an IOMMU >> > driver based on such fact. >> > >> >> I needed something short to describe such IOMMUs, but, If title >> >> "non-shared" IOMMU sounds confusing >> >> I won't use it anymore. Do you have something in mind? >> > >> > IOMMU driver needs to be vendor specific. Is your driver working >> > for all IPMMU-VMSA compatible IOMMUs or only for Renesas? >> > If the latter, you may make the name explicit for such purpose. >> > >> > btw since you're porting Linux driver to Xen. What 's the name >> > used in Linux side? that should be a good reference to you. >> >> I am afraid a misunderstanding took place. Let me elaborate a bit more >> about this. >> >> The IOMMU driver I am porting to Xen is IPMMU-VMSA [1]. This name is >> used in Linux >> and this name was retained during porting to Xen. This driver is >> intended to work with Renesas VMSA-compatible IPMMUs. >> But, IPMMU-VMSA support is not a target for the current thread, there >> is another thread for adding it [2]. >> >> The purpose of the current thread is to create ground for IPMMU-VMSA >> IOMMUs >> (as well as other IOMMUs which can't share page table with CPU because >> of format incompatibilities) to be functional inside Xen on ARM. >> The only IOMMU supported today in Xen on ARM is the ARM SMMU (which >> uses the same page table format as the CPU and can share page table >> with it). >> And ARM specific code assumes that P2M table is *always* shared and >> acts accordingly. So, this patch series is trying >> to, let's say, brake this assumption and create environment to handle >> such IOMMUs as well. >> So, I may use the whole sentence as a patch series title in order not >> to confuse people: >> "Support IOMMUs which don't share page table with the CPU on ARM" >> No objections? > > well, I saw where disconnect comes. My context when reviewing > this message is right around thinking some about Shared Virtual > Memory (SVM), which is a feature to allow IOMMU sharing same > CPU page table for VA->PA so user application can directly send > VA to device to do DMA. In virtualization it means IOMMU supports > two-level translation with 1st level for GVA -> GPA and 2nd level > for GPA->HPA. 1st level directly uses guest CPU page table. That > is an optional feature not supported by all IOMMUs. > > while your work is really about IOMMU sharing CPU EPT page > table (GPA->HPA) (sorry I don't know ARM's term for EPT), and > for this usage some ARM SMMUs have compatible format while > others may not, which is why you introduced the "non-shared" > model here. Yes. Exactly. It was about sharing *stage-2* page table (that handles IPA->PA mappings). Sorry if I was unclear. > > I'm not sure whether it's worthy of differentiating two usages > in your subject line, since SVM support is not in Xen today. And > from Julien's comment looks people don't have confusion on > its meaning. Then I'm fine with your original description. it's > Julien's call. :-) > > Thanks > Kevin -- Regards, Oleksandr Tyshchenko _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |