Re: [PATCH v4 1/2] iommu/sva: Tighten SVA bind API with explicit flags
From: Jacob Pan
Date: Thu May 13 2021 - 11:08:31 EST
Hi Jason,
On Thu, 13 May 2021 10:38:34 -0300, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote:
> On Thu, May 13, 2021 at 06:00:12AM -0700, Jacob Pan wrote:
> > > > If you want to do SVA PASID then it also must come with DMA APIs to
> > > > manage the CPU cache coherence that are all NOP's on x86.
> > >
> > > Yes. And we have plenty of precende where an IOMMU is in "bypass"
> > > mode to allow access to all memory and then uses the simple
> > > dma-direct case.
> > I agree it is better not to expose the entire direct map. But the
> > missing piece of using DMA APIs is the PASID. The caller needs the
> > PASID value to do work submission once buffer is mapped.
>
> You still haven't explained why the kernel driver should have a PASID at
> all.
>
For shared workqueue, it can only generate DMA request with PASID. The
submission is done by ENQCMDS (S for supervisor) instruction.
If we were not to share page tables with init_mm, we need a system PASID
that doing the same direct mapping in IOMMU page tables.
> Jason
Thanks,
Jacob