On Mon, Sep 18, 2023 at 10:48:54AM -0700, Nelson, Shannon wrote:
In our case, the VF device's msix count value found in PCI config space is
changed by device configuration management outside of the baremetal host and
read by the QEMU instance when it starts up, and then read by the vfio PCI
core when QEMU requests the first IRQ.
Oh, you definitely can't do that!
PCI config space is not allowed to change outside the OS's view and we
added sriov_set_msix_vec_count() specifically as a way to provide the
necessary synchronization between all the parts.
Randomly changing, what should be immutable, parts of the config space
from under a running OS is just non-compliant PCI behavior.