Re: [RFC] /dev/ioasid uAPI proposal

From: Lu Baolu
Date: Mon May 31 2021 - 21:26:34 EST


On 5/31/21 7:31 PM, Liu Yi L wrote:
On Fri, 28 May 2021 20:36:49 -0300, Jason Gunthorpe wrote:

On Thu, May 27, 2021 at 07:58:12AM +0000, Tian, Kevin wrote:

2.1. /dev/ioasid uAPI
+++++++++++++++++

[---cut for short---]

/*
* Allocate an IOASID.
*
* IOASID is the FD-local software handle representing an I/O address
* space. Each IOASID is associated with a single I/O page table. User
* must call this ioctl to get an IOASID for every I/O address space that is
* intended to be enabled in the IOMMU.
*
* A newly-created IOASID doesn't accept any command before it is
* attached to a device. Once attached, an empty I/O page table is
* bound with the IOMMU then the user could use either DMA mapping
* or pgtable binding commands to manage this I/O page table.
Can the IOASID can be populated before being attached?
perhaps a MAP/UNMAP operation on a gpa_ioasid?


But before attaching to any device, there's no connection between an
IOASID and the underlying IOMMU. How do you know the supported page
sizes and cache coherency?

The restriction of iommu_group is implicitly expressed as only after all
devices belonging to an iommu_group are attached, the operations of the
page table can be performed.

Best regards,
baolu