On Wed, Nov 11, 2020 at 03:41:59PM +0000, Christoph Hellwig wrote: > On Sun, Nov 08, 2020 at 07:36:34PM +0000, David Woodhouse wrote: > > So it does look like we're going to need a hypercall interface to > > compose an MSI message on behalf of the guest, for IMS to use. In fact > > PCI devices assigned to a guest could use that too, and then we'd only > > need to trap-and-remap any attempt to write a Compatibility Format MSI > > to the device's MSI table, while letting Remappable Format messages get > > written directly. > > > > We'd also need a way for an OS running on bare metal to *know* that > > it's on bare metal and can just compose MSI messages for itself. Since > > we do expect bare metal to have an IOMMU, perhaps that is just a > > feature flag on the IOMMU? > > Have the platform firmware advertise if it needs native or virtualized > IMS handling. If it advertises neither don't support IMS? The platform hint can be easily accomplished via DMAR table flags. We could have an IMS_OPTOUT(similart to x2apic optout flag) flag, when 0 its native and IMS is supported. When vIOMMU is presented to guest, virtual DMAR table will have this flag set to 1. Indicates to GuestOS, native IMS isn't supported.