On Mon, 27 Sep 2021, Ján Tomko wrote: > On a Monday in 2021, Ani Sinha wrote: > > This change introduces libvirt xml support to enable/disable hotplug on the > > pci-root controller. It adds a 'target' subelement for the pci-root > > controller > > with a 'hotplug' property. This property can be used to enable or disable > > hotplug for the pci-root controller. For example, in order to disable > > hotplug > > on the pci-root controller, one has to use set '<target hotplug='off'>' as > > shown below: > > > > <controller type='pci' model='pci-root'> > > <target hotplug='off'/> > > </controller> > > > > '<target hotplug='on'>' option would enable hotplug for pci-root controller. > > This is also the default value. This option is only available for pc machine > > types and is applicable for qemu only/kvm accelerator onlt.This feature was > > s/onlt./only. / Will fix in v6. > > > introduced from qemu version 5.2 with the following change in qemu > > repository: > > > > 3d7e78aa7777f ("Introduce a new flag for i440fx to disable PCI hotplug on > > the root bus") > > > > The above qemu commit describes some reasons why users might to disable > > hotplug > > on PCI root buses. > > > > Related unit tests to exercise the new conf option has also been added. > > > > Signed-off-by: Ani Sinha <ani@xxxxxxxxxxx> > > --- > > docs/formatdomain.rst | 12 ++++---- > > src/qemu/qemu_validate.c | 9 +++++- > > .../pc-i440fx-acpi-root-hotplug-disable.xml | 30 +++++++++++++++++++ > > .../pc-i440fx-acpi-root-hotplug-enable.xml | 30 +++++++++++++++++++ > > .../pc-i440fx-acpi-root-hotplug-disable.xml | 1 + > > .../pc-i440fx-acpi-root-hotplug-enable.xml | 1 + > > tests/qemuxml2xmltest.c | 4 +++ > > 7 files changed, 81 insertions(+), 6 deletions(-) > > create mode 100644 > > tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.xml > > create mode 100644 > > tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.xml > > create mode 120000 > > tests/qemuxml2xmloutdata/pc-i440fx-acpi-root-hotplug-disable.xml > > create mode 120000 > > tests/qemuxml2xmloutdata/pc-i440fx-acpi-root-hotplug-enable.xml > > > > @@ -3879,6 +3879,14 @@ qemuValidateDomainDeviceDefControllerPCI(const > > virDomainControllerDef *cont, > > /* hotplug */ > > if (pciopts->hotplug != VIR_TRISTATE_SWITCH_ABSENT) { > > switch ((virDomainControllerModelPCI) cont->model) { > > + case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT: > > + if (!virQEMUCapsGet(qemuCaps, > > QEMU_CAPS_PIIX_ACPI_ROOT_PCI_HOTPLUG)) { > > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > > + _("setting the %s property on a pci-root > > device is not supported by this QEMU binary"), > > + "hotplug"); > > No need to create a new translatable string, the one used by the case > below can be reused: > > virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > _("setting the hotplug property on a '%s' > device is not supported by this QEMU binary"), > "pci-root"); yes very good suggestion. Will fix in v6.