On Fri, Oct 8, 2021 at 12:12 PM Ani Sinha <a...@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 <a...@anisinha.ca> > Reviewed-by: Laine Stump <la...@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 > >