Re: [RFC 11/20] iommu/iommufd: Add IOMMU_IOASID_ALLOC/FREE

david
2021-10-11T07:19:57Z

[-- Attachment #1: Type: text/plain, Size: 1744 bytes --]

On Sat, Oct 02, 2021 at 09:25:42AM -0300, Jason Gunthorpe wrote:
> On Sat, Oct 02, 2021 at 02:21:38PM +1000, david@gibson.dropbear.id.au wrote:
>
> > > > No. qemu needs to supply *both* the 32-bit and 64-bit range to its
> > > > guest, and therefore needs to request both from the host.
> > >
> > > As I understood your remarks each IOAS can only be one of the formats
> > > as they have a different PTE layout. So here I ment that qmeu needs to
> > > be able to pick *for each IOAS* which of the two formats it is.
> >
> > No. Both windows are in the same IOAS. A device could do DMA
> > simultaneously to both windows.
>
> Sure, but that doesn't force us to model it as one IOAS in the
> iommufd. A while back you were talking about using nesting and 3
> IOAS's, right?
>
> 1, 2 or 3 IOAS's seems like a decision we can make.

Well, up to a point. We can decide how such a thing should be
constructed. However at some point there needs to exist an IOAS in
which both windows are mapped, whether it's directly or indirectly.
That's what the device will be attached to.

> PASID support will already require that a device can be multi-bound to
> many IOAS's, couldn't PPC do the same with the windows?

I don't see how that would make sense. The device has no awareness of
multiple windows the way it does of PASIDs. It just sends
transactions over the bus with the IOVAs it's told. If those IOVAs
lie within one of the windows, the IOMMU picks them up and translates
them. If they don't, it doesn't.

--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]