On Tue, Apr 29, 2025 at 03:52:48PM +0530, Vasant Hegde wrote: > On 4/29/2025 12:15 PM, Nicolin Chen wrote: > > On Tue, Apr 29, 2025 at 11:04:06AM +0530, Vasant Hegde wrote: > >> On 4/29/2025 1:32 AM, Nicolin Chen wrote: > >>> On Mon, Apr 28, 2025 at 05:42:27PM +0530, Vasant Hegde wrote: > >>> Yes. For AMD "vIOMMU", it needs a new type for iommufd vIOMMU: > >>> IOMMU_VIOMMU_TYPE_AMD_VIOMMU, > >>> > >>> For AMD "vIOMMU" command buffer, it needs a new type too: > >>> IOMMU_VCMDQ_TYPE_AMD_VIOMMU, /* Kdoc it to be Command Buffer */ > >> > >> You are suggesting we define one type for AMD and use it for all buffers > >> like > >> command buffer, event log, PPR buffet etc? and use > >> iommu_vcmdq_alloc->index to > >> identity different buffer type? > > > > We have vEVENTQ for event logging and FAULT_QUEUE for PRI, but both > > are not for hardware accelerated use cases. > > > > I didn't check the details of AMD's event log and PPR buffers. But > > they seem to be the same ring buffers and can be consumed by guest > > kernel directly? > > Right. Event log is accelerated and consumed by guest directly. Also we have > Event Log B ! > > > > > Will the hardware replace the physical device ID in the event with > > the virtual device ID when injecting the event to a guest event/PPR > > queue? > > If so, yea, I think you can define them separately using the> vCMDQ > infrastructures: > > - IOMMU_VCMDQ_TYPE_AMD_VIOMMU_CMDBUF > > - IOMMU_VCMDQ_TYPE_AMD_VIOMMU_EVENTLOG > > - IOMMU_VCMDQ_TYPE_AMD_VIOMMU_PPRLOG > > (@Kevin @Jason Hmm, in this case we might want to revert the naming > > "vCMDQ" back to "vQEUEUE", once Vasant confirms.)
I think I should rename IOMMUFD_OBJ_VCMDQ back to IOMMUFD_OBJ_VQUEUE since the same object fits three types of queue now in the AMD case. Or any better naming suggestion? Thanks Nicolin