[libvirt] [PATCH 2/2] qemu: don't add pci-bridge to Q35/arm domains unless it's needed

Andrea Bolognani abologna at redhat.com
Thu Jun 16 12:50:35 UTC 2016


On Wed, 2016-06-15 at 12:51 -0400, Laine Stump wrote:
> Until now, a Q35 domain (or arm/virt, or any other domain that has a
> pcie-root bus) would always have a pci-bridge added, so that there
> would be a hotpluggable standard PCI slot available to plug in any PCI
> devices that might be added. This patch removes the explicit add,
> instead relying on the pci-bridge being auto-added during PCI address
> assignment (it will add a pci-bridge if there are no free slots).
> 
> This doesn't eliminate the dmi-to-pci-bridge controller that is
> explicitly added whether or not a standard PCI slot is required (and
> that is almost never used as anything other than a converter between
> pcie.0's PCIe slots and standard PCI). That will be done separately.
> ---
>  src/qemu/qemu_domain.c                                               | 4 ----
>  .../qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args            | 1 -
>  tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args  | 1 -
>  tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args                   | 3 +--
>  .../qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml | 5 -----
>  tests/qemuxml2xmloutdata/qemuxml2xmlout-pcie-root.xml                | 5 -----
>  6 files changed, 1 insertion(+), 18 deletions(-)
> 
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 8348460..c844566 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -1959,10 +1959,6 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def,
>              !virDomainDefAddController(def, VIR_DOMAIN_CONTROLLER_TYPE_PCI, 1,
>                                        VIR_DOMAIN_CONTROLLER_MODEL_DMI_TO_PCI_BRIDGE))
>              goto cleanup;
> -        if (virDomainControllerFind(def, VIR_DOMAIN_CONTROLLER_TYPE_PCI, 2) < 0 &&
> -            !virDomainDefAddController(def, VIR_DOMAIN_CONTROLLER_TYPE_PCI, 2,
> -                                       VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE))
> -            goto cleanup;
>      }
>  
>      if (addDefaultMemballoon && !def->memballoon) {
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
> b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
> index 1163245..2a5702f 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
> @@ -22,7 +22,6 @@ QEMU_AUDIO_DRV=none \
>  -append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
>  -dtb /aarch64.dtb \
>  -device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1 \
> --device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x0 \
>  -device virtio-serial-device,id=virtio-serial0 \
>  -usb \
>  -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args
> b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args
> index 9aaed4b..a2df858 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args
> @@ -22,7 +22,6 @@ QEMU_AUDIO_DRV=none \
>  -append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
>  -dtb /aarch64.dtb \
>  -device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1 \
> --device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x0 \
>  -device virtio-serial-device,id=virtio-serial0 \
>  -usb \
>  -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args b/tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args
> index d6b139f..ade7acc 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args
> @@ -16,5 +16,4 @@ QEMU_AUDIO_DRV=none \
>  -monitor unix:/tmp/lib/domain--1-q35-test/monitor.sock,server,nowait \
>  -no-acpi \
>  -boot c \
> --device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \
> --device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x0
> +-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml
> b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml
> index be2e113..a212601 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml
> @@ -37,11 +37,6 @@
>        <model name='i82801b11-bridge'/>
>        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
>      </controller>
> -    <controller type='pci' index='2' model='pci-bridge'>
> -      <model name='pci-bridge'/>
> -      <target chassisNr='2'/>
> -      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
> -    </controller>
>      <controller type='virtio-serial' index='0'>
>        <address type='virtio-mmio'/>
>      </controller>
> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pcie-root.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pcie-
> root.xml
> index 7f2e21a..80dc35e 100644
> --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pcie-root.xml
> +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pcie-root.xml
> @@ -22,11 +22,6 @@
>        <model name='i82801b11-bridge'/>
>        <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
>      </controller>
> -    <controller type='pci' index='2' model='pci-bridge'>
> -      <model name='pci-bridge'/>
> -      <target chassisNr='2'/>
> -      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
> -    </controller>
>      <input type='mouse' bus='ps2'/>
>      <input type='keyboard' bus='ps2'/>
>      <memballoon model='none'/>

ACK

-- 
Andrea Bolognani
Software Engineer - Virtualization Team




More information about the libvir-list mailing list