On Wed, 26 Feb 2025 at 01:33, Nicolin Chen <nicolinc@xxxxxxxxxx> wrote: > > As the vIOMMU infrastructure series part-3, this introduces a new vEVENTQ > object. The existing FAULT object provides a nice notification pathway to > the user space with a queue already, so let vEVENTQ reuse that. > > Mimicing the HWPT structure, add a common EVENTQ structure to support its > derivatives: IOMMUFD_OBJ_FAULT (existing) and IOMMUFD_OBJ_VEVENTQ (new). > > An IOMMUFD_CMD_VEVENTQ_ALLOC is introduced to allocate vEVENTQ object for > vIOMMUs. One vIOMMU can have multiple vEVENTQs in different types but can > not support multiple vEVENTQs in the same type. > > The forwarding part is fairly simple but might need to replace a physical > device ID with a virtual device ID in a driver-level event data structure. > So, this also adds some helpers for drivers to use. > > As usual, this series comes with the selftest coverage for this new ioctl > and with a real world use case in the ARM SMMUv3 driver. > > This is on Github: > https://github.com/nicolinc/iommufd/commits/iommufd_veventq-v8 > Paring QEMU branch for testing: > https://github.com/nicolinc/qemu/commits/wip/for_iommufd_veventq-v8 Thanks Nico Tested-by: Zhangfei Gao <zhangfei.gao@xxxxxxxxxx> After rebase on your branch https://github.com/Linaro/linux-kernel-warpdrive/tree/iommufd_veventq-v8 https://github.com/Linaro/qemu/tree/for_iommufd_veventq-v8 Tested with multi-device in guests, with io page faults happen. Thanks