Re: [RFC PATCH v1 00/18] Provide a new two step DMA API mapping API

From: Jason Gunthorpe
Date: Thu Jul 11 2024 - 19:29:37 EST


On Wed, Jul 10, 2024 at 08:22:12AM +0200, Christoph Hellwig wrote:
> On Tue, Jul 09, 2024 at 04:03:20PM -0300, Jason Gunthorpe wrote:
> > > Except for the powerpc bypass IOMMU or not is a global decision,
> > > and the bypass is per I/O. So I'm not sure what else you want there?
> >
> > For P2P we know if the DMA will go through the IOMMU or not based on
> > the PCIe fabric path between the initiator (the one doing the DMA) and
> > the target (the one providing the MMIO memory).
>
> Oh, yes. So effectively you are asking if we can arbitrarily mix
> P2P sources in a single map request. I think the only sane answer
> from the iommu/dma subsystem perspective is: hell no.

Well, today we can mix them and the dma_map_sg will sort it out. With
this new API we can't anymore.

So this little detail needs to be taken care of somehow as well, and I
didn't see it in this RFC.

> For the block layer just having one kind per BIO is fine right now,
> although I could see use cases where people would want to combine
> them. We can probably defer that until it is needed, though.

Do you have an application in mind that would want multi-kind per BIO?

Jason