On Wed, May 22, 2024 at 01:48:18PM -0300, Jason Gunthorpe wrote: > On Wed, May 22, 2024 at 08:40:00AM +0000, Tian, Kevin wrote: > > > From: Nicolin Chen <nicolinc@xxxxxxxxxx> > > > Sent: Saturday, April 13, 2024 11:47 AM > > > > > > This is an experimental RFC series for VIOMMU infrastructure, using NVIDIA > > > Tegra241 (Grace) CMDQV as a test instance. > > > > > > VIOMMU obj is used to represent a virtual interface (iommu) backed by an > > > underlying IOMMU's HW-accelerated feature for virtualizaion: for example, > > > NVIDIA's VINTF (v-interface for CMDQV) and AMD"s vIOMMU. > > > > > > VQUEUE obj is used to represent a virtual command queue (buffer) backed > > > by > > > an underlying IOMMU command queue to passthrough for VMs to use > > > directly: > > > for example, NVIDIA's Virtual Command Queue and AMD's Command Buffer. > > > > > > > is VCMDQ more accurate? AMD also supports fault queue passthrough > > then VQUEUE sounds broader than a cmd queue... > > Is there a reason VQUEUE couldn't handle the fault/etc queues too? The > only difference is direction, there is still a doorbell/etc. Yea, SMMU also has Event Queue and PRI queue. Though I haven't got time to sit down to look at Baolu's work closely, the uAPI seems to be a unified one for all IOMMUs. And though I have no intention to be against that design, yet maybe there could be an alternative in a somewhat HW specific language as we do for invalidation? Or not worth it? Thanks Nicolin