Hi Jason, On 8/24/2023 9:33 AM, Jason Gunthorpe wrote: > On Thu, Aug 24, 2023 at 09:15:21AM -0700, Reinette Chatre wrote: >> Access from a guest to a virtual device may be either 'direct-path', >> where the guest interacts directly with the underlying hardware, >> or 'intercepted path' where the virtual device emulates operations. >> >> Support emulated interrupts that can be used to handle 'intercepted >> path' operations. For example, a virtual device may use 'intercepted >> path' for configuration. Doing so, configuration requests intercepted >> by the virtual device driver are handled within the virtual device >> driver with completion signaled to the guest without interacting with >> the underlying hardware. > > Why does this have anything to do with IMS? I thought the point here > was that IMS was some back end to the MSI-X emulation - should a > purely emulated interrupt logically be part of the MSI code, not IMS? You are correct, an emulated interrupt is not unique to IMS. The target usage of this library is by pure(?) VFIO devices (struct vfio_device). These are virtual devices that are composed by separate VFIO drivers. For example, a single resource of an accelerator device can be composed into a stand-alone virtual device for use by a guest. Through its API and implementation the current VFIO MSI code expects to work with actual PCI devices (struct vfio_pci_core_device). With the target usage not being an actual PCI device the VFIO MSI code was not found to be a good fit and thus this implementation does not build on current MSI support. Reinette