Message ID | cover.1740504232.git.nicolinc@nvidia.com (mailing list archive) |
---|---|
Headers | show |
Series | iommufd: Add vIOMMU infrastructure (Part-3: vEVENTQ) | expand |
On Wed, 26 Feb 2025 at 01:33, Nicolin Chen <nicolinc@nvidia.com> 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@linaro.org> 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
On Sat, Mar 01, 2025 at 12:16:00PM +0800, Zhangfei Gao wrote: > On Wed, 26 Feb 2025 at 01:33, Nicolin Chen <nicolinc@nvidia.com> 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@linaro.org> > > 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 for testing! Nicolin