• A
    vfio/pci: Hide ARI capability · 383a7af7
    Alex Williamson 提交于
    QEMU supports ARI on downstream ports and assigned devices may support
    ARI in their extended capabilities.  The endpoint ARI capability
    specifies the next function, such that the OS doesn't need to walk
    each possible function, however this next function is relative to the
    host, not the guest.  This leads to device discovery issues when we
    combine separate functions into virtual multi-function packages in a
    guest.  For example, SR-IOV VFs are not enumerated by simply probing
    the function address space, therefore the ARI next-function field is
    zero.  When we combine multiple VFs together as a multi-function
    device in the guest, the guest OS identifies ARI is enabled, relies on
    this next-function field, and stops looking for additional function
    after the first is found.
    
    Long term we should expose the ARI capability to the guest to enable
    configurations with more than 8 functions per slot, but this requires
    additional QEMU PCI infrastructure to manage the next-function field
    for multiple, otherwise independent devices.  In the short term,
    hiding this capability allows equivalent functionality to what we
    currently have on non-express chipsets.
    Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
    Reviewed-by: NMarcel Apfelbaum <marcel@redhat.com>
    383a7af7
pci.c 90.4 KB