Messages in this thread | | | Date | Thu, 28 Feb 2019 14:04:49 -0800 | From | "Raj, Ashok" <> | Subject | Re: [PATCH 1/1] iommu: Bind process address spaces to devices |
| |
On Thu, Feb 28, 2019 at 01:15:49PM -0800, Jacob Pan wrote: > On Thu, 28 Feb 2019 15:09:50 +0100 > Joerg Roedel <joro@8bytes.org> wrote: > > > Hi Jacob, > > > > On Wed, Feb 27, 2019 at 01:41:29PM -0800, Jacob Pan wrote: > > > On Tue, 26 Feb 2019 12:17:43 +0100 > > > Joerg Roedel <joro@8bytes.org> wrote: > > > > > Just trying to understand how to use this API. > > > So if we bind the same mm to two different devices, we should get > > > two different iommu_sva handle, right? > > > I think intel-svm still needs a flag argument for supervisor pasid > > > etc. Other than that, I think both interface should work for vt-d. > > > > I second Jean's question here, is supervisor pasid still needed with > > scalable mode? What is the use-case and which mm_struct will be used > > for supervisor accesses? > > > I will delegate this to Ashok.
Supervisor PASID is still required for some kernel clients. Some of our IB folks had asked for it. Current implementation uses init_mm, but we know this is dangerous. Plus since the kernel has no support for mmu_notifiers for kernel memory we were not able to invalidate device tlb after memory was freed.
Suppose we could just build regular page-tables much like how the map/unmap does today, but bind it with a Supervisor PASID. This way we don't open up the kimono to the device, but only open select portions on request.
we haven't spent enough time on it lately, but will focus once the core pieces are completed for the baseline support for Scalable mode.
| |