> From: Jason Gunthorpe <jgg@xxxxxxxxxx> > Sent: Tuesday, November 3, 2020 8:44 PM > > On Tue, Nov 03, 2020 at 02:49:27AM +0000, Tian, Kevin wrote: > > > > There is a missing hypercall to allow the guest to do this on its own, > > > presumably it will someday be fixed so IMS can work in guests. > > > > Hypercall is VMM specific, while IMS cap provides a VMM-agnostic > > interface so any guest driver (if following the spec) can seamlessly > > work on all hypervisors. > > It is a *VMM* issue, not PCI. Adding a PCI cap to describe a VMM issue > is architecturally wrong. > > IMS *can not work* in any hypervsior without some special > hypercall. Just block it in the platform code and forget about the PCI > cap. > It's per-device thing instead of platform thing. If the VMM understands the IMS format of a specific device and virtualize it to the guest, the guest can use IMS w/o any hypercall. If the VMM doesn't understand, it simply clears the IMS cap bit for this device which forces the guest to use the standard PCI MSI/MSI-X interface. In VMM side the decision is based on device virtualization knowledge, e.g. in VFIO, instead of in platform virtualization logic. Your platform argument is based on the hypercall assumption, which is what we want to avoid instead. Thanks Kevin