[PATCH v7 1/4] qemu: capablities: detect presence of acpi-pci-hotplug-with-bridge-support

Ani Sinha ani at anisinha.ca
Fri Oct 8 14:39:13 UTC 2021


On Fri, Oct 8, 2021 at 12:12 PM Ani Sinha <ani at anisinha.ca> wrote:

> qemu added support for i440fx specific global boolean flag
>
> PIIX4_PM.acpi-pci-hotplug-with-bridge-support
>
> around version 2.1. This flag is enabled by default. When disabled, it
> turns
> off acpi pci hotplug for cold plugged pci bridges in i440fx machine types.
>
> Very recently, in qemu version 6.1, the same global option was also added
> for
> q35 machine types as well.
>
> ICH9-LPC.acpi-pci-hotplug-with-bridge-support
>
> This option turns on or off acpi based hotplug for cold plugged pcie
> bridges
> like pcie root ports. This flag is also enabled by default. Please refer to
> the following qemu changes:
>
> c0e427d6eb5fef ("hw/acpi/ich9: Enable ACPI PCI hot-plug")
> 17858a16950860 ("hw/acpi/ich9: Set ACPI PCI hot-plug as default on Q35")
>
> This patch adds the corresponding qemu capabilities in libvirt. For i440fx,
> the capability is detected as QEMU_CAPS_PIIX_ACPI_HOTPLUG_BRIDGE.


Oops forgot to update the commit message here. It should be
QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE




For q35,
> the capability is detected as QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE.
>
> Please note that the test specific qemu capabilities .replies files has
> already
> been updated as a part of regular refreshing them when a new qemu version
> is
> released. Hence, no updates to those files are required.
>
> Signed-off-by: Ani Sinha <ani at anisinha.ca>
> Reviewed-by: Laine Stump <laine at redhat.com>
> ---
>  src/qemu/qemu_capabilities.c                      | 4 ++++
>  src/qemu/qemu_capabilities.h                      | 2 ++
>  tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 +
>  tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml  | 1 +
>  tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml  | 2 ++
>  14 files changed, 19 insertions(+)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 82687dbf39..c4d0e1858c 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -644,6 +644,8 @@ VIR_ENUM_IMPL(virQEMUCaps,
>                "virtio-mem-pci", /* QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI */
>                "memory-backend-file.reserve", /*
> QEMU_CAPS_MEMORY_BACKEND_RESERVE */
>                "piix4.acpi-root-pci-hotplug", /*
> QEMU_CAPS_PIIX4_ACPI_ROOT_PCI_HOTPLUG */
> +              "piix4.acpi-hotplug-bridge", /*
> QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE */
> +              "ich9.acpi-hotplug-bridge", /*
> QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE */
>      );
>
>
> @@ -1472,6 +1474,7 @@ static struct virQEMUCapsDevicePropsFlags
> virQEMUCapsDevicePropsPiix4PM[] = {
>      { "disable_s3", QEMU_CAPS_PIIX_DISABLE_S3, NULL },
>      { "disable_s4", QEMU_CAPS_PIIX_DISABLE_S4, NULL },
>      { "acpi-root-pci-hotplug", QEMU_CAPS_PIIX4_ACPI_ROOT_PCI_HOTPLUG,
> NULL },
> +    { "acpi-pci-hotplug-with-bridge-support",
> QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE, NULL },
>  };
>
>  static struct virQEMUCapsDevicePropsFlags
> virQEMUCapsDevicePropsUSBRedir[] = {
> @@ -1524,6 +1527,7 @@ static struct virQEMUCapsDevicePropsFlags
> virQEMUCapsDevicePropsVirtioGpu[] = {
>  static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsICH9[] = {
>      { "disable_s3", QEMU_CAPS_ICH9_DISABLE_S3, NULL },
>      { "disable_s4", QEMU_CAPS_ICH9_DISABLE_S4, NULL },
> +    { "acpi-pci-hotplug-with-bridge-support",
> QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE, NULL },
>  };
>
>  static struct virQEMUCapsDevicePropsFlags
> virQEMUCapsDevicePropsUSBNECXHCI[] = {
> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
> index 2bbfc15dc4..e9bd6c8885 100644
> --- a/src/qemu/qemu_capabilities.h
> +++ b/src/qemu/qemu_capabilities.h
> @@ -624,6 +624,8 @@ typedef enum { /* virQEMUCapsFlags grouping marker for
> syntax-check */
>      QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI, /* -device virtio-mem-pci */
>      QEMU_CAPS_MEMORY_BACKEND_RESERVE, /* -object
> memory-backend-*.reserve= */
>      QEMU_CAPS_PIIX4_ACPI_ROOT_PCI_HOTPLUG, /* -M pc
> PIIX4_PM.acpi-root-pci-hotplug */
> +    QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE, /* -M pc
> PIIX4_PM.acpi-pci-hotplug-with-bridge-support */
> +    QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE, /* -M q35
> ICH9-LPC.acpi-pci-hotplug-with-bridge-support */
>
>      QEMU_CAPS_LAST /* this must always be the last item */
>  } virQEMUCapsFlags;
> diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
> index d6549d6440..65bfe911dd 100644
> --- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
> @@ -172,6 +172,7 @@
>    <flag name='am53c974'/>
>    <flag name='cpu-max'/>
>    <flag name='input-linux'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>2011000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100288</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
> index 354a95cebc..e4d936886b 100644
> --- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
> @@ -184,6 +184,7 @@
>    <flag name='cpu-max'/>
>    <flag name='input-linux'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>2011090</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100289</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
> index cffe482bf6..b903fbe403 100644
> --- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
> @@ -190,6 +190,7 @@
>    <flag name='cpu-max'/>
>    <flag name='input-linux'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>3000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100239</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
> index 514e5985ac..143edb4e52 100644
> --- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
> @@ -194,6 +194,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>3000092</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> index 5e733fec13..936726939d 100644
> --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> @@ -202,6 +202,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>4000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100240</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> index ba9ee0dd96..742e71e4ae 100644
> --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
> @@ -209,6 +209,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>4001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> index 034a770b08..52d0acef3d 100644
> --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
> @@ -220,6 +220,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>4002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> index aae5fe018f..ccd7e53ea8 100644
> --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
> @@ -227,6 +227,7 @@
>    <flag name='input-linux'/>
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>5000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100241</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> index e9ae3c5abb..267a3acd9d 100644
> --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
> @@ -230,6 +230,7 @@
>    <flag name='query-display-options'/>
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='virtio-mem-pci'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>5001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> index 98b5f34f2b..2be17f0e45 100644
> --- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
> @@ -232,6 +232,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='virtio-mem-pci'/>
>    <flag name='piix4.acpi-root-pci-hotplug'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>5002000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100243</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> index f13a909314..9070eb85aa 100644
> --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> @@ -240,6 +240,7 @@
>    <flag name='virtio-blk.queue-size'/>
>    <flag name='virtio-mem-pci'/>
>    <flag name='piix4.acpi-root-pci-hotplug'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
>    <version>6000000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>
> diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> index 87b37a2b7c..01833aff4b 100644
> --- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
> @@ -243,6 +243,8 @@
>    <flag name='virtio-mem-pci'/>
>    <flag name='memory-backend-file.reserve'/>
>    <flag name='piix4.acpi-root-pci-hotplug'/>
> +  <flag name='piix4.acpi-hotplug-bridge'/>
> +  <flag name='ich9.acpi-hotplug-bridge'/>
>    <version>6001000</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100243</microcodeVersion>
> --
> 2.25.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20211008/64ed4767/attachment-0001.htm>


More information about the libvir-list mailing list