Re: [RFC] /dev/ioasid uAPI proposal

From: Jason Gunthorpe
Date: Tue Jun 01 2021 - 13:36:40 EST


On Tue, Jun 01, 2021 at 12:04:00PM +0000, Parav Pandit wrote:
>
>
> > From: Jason Gunthorpe <jgg@xxxxxxxxxx>
> > Sent: Monday, May 31, 2021 11:43 PM
> >
> > On Mon, May 31, 2021 at 05:37:35PM +0000, Parav Pandit wrote:
> >
> > > In that case, can it be a new system call? Why does it have to be under
> > /dev/ioasid?
> > > For example few years back such system call mpin() thought was proposed
> > in [1].
> >
> > Reference counting of the overall pins are required
> >
> > So when a pinned pages is incorporated into an IOASID page table in a later
> > IOCTL it means it cannot be unpinned while the IOASID page table is using it.
> Ok. but cant it use the same refcount of that mmu uses?

Manipulating that refcount is part of the overhead that is trying to
be avoided here, plus ensuring that the pinned pages accounting
doesn't get out of sync with the actual account of pinned pages!

> > Then the ioasid's interval tree would be mapped into a page table tree in HW
> > format.

> Does it mean in simple use case [1], second level page table copy is
> maintained in the IOMMU side via map interface? I hope not. It
> should use the same as what mmu uses, right?

Not a full page by page copy, but some interval reference.

Jason