]> git.proxmox.com Git - mirror_qemu.git/commit
gen_pcie_root_port: Add ACS (Access Control Services) capability
authorKnut Omang <knut.omang@oracle.com>
Thu, 21 Feb 2019 18:13:23 +0000 (19:13 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 13 Mar 2019 02:31:21 +0000 (22:31 -0400)
commite07fb4b50b629141eb1517002ccfa070dbdc1ea7
treef867927fbb21836f928de0aba391ade75311c5bf
parentdb891a9ba3b5aef52c2735f9b907d4d3678a86f8
gen_pcie_root_port: Add ACS (Access Control Services) capability

Claim ACS support in the generic PCIe root port to allow
passthrough of individual functions of a device to different
guests (in a nested virt.setting) with VFIO.
Without this patch, all functions of a device, such as all VFs of
an SR/IOV device, will end up in the same IOMMU group.
A similar situation occurs on Windows with Hyper-V.

In the single function device case, it also has a small cosmetic
benefit in that the root port itself is not grouped with
the device. VFIO handles that situation in that binding rules
only apply to endpoints, so it does not limit passthrough in
those cases.

Signed-off-by: Knut Omang <knut.omang@oracle.com>
Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Message-Id: <319460b483f566dd57487eb3dd340ed4c10aa53c.1550768238.git-series.knut.omang@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
hw/pci-bridge/gen_pcie_root_port.c
hw/pci-bridge/pcie_root_port.c
include/hw/pci/pcie_port.h