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
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@anisinha.ca>
---
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
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 0f5d833521..e2a1768ba7 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -3776,11 +3776,13 @@ generated by libvirt. :since:`Since 1.2.19 (QEMU only).`
controller's "port" configuration value, which is visible to the virtual
machine. If set, port must be between 0 and 255.
``hotplug``
- pcie-root-port and pcie-switch-downstream-port controllers can also have a
- ``hotplug`` attribute in the ``<target>`` subelement, which is used to
- disable hotplug/unplug of devices on a particular controller. The default
- setting of ``hotplug`` is ``on``; it should be set to ``off`` to disable
- hotplug/unplug of devices on a particular controller. :since:`Since 6.3.0`
+ pci-root (:since:`Since 7.8.0`), pcie-root-port (:since:`Since 6.3.0`) and
+ pcie-switch-downstream-port controllers (:since:`Since 6.3.0`) can
+ also have a ``hotplug`` attribute in the ``<target>`` subelement, which is
+ used to disable hotplug/unplug of devices on a particular controller. The
+ default setting of ``hotplug`` is ``on``; it should be set to ``off`` to
+ disable hotplug/unplug of devices on a particular controller.
+
``busNr``
pci-expander-bus and pcie-expander-bus controllers can have an optional
``busNr`` attribute (1-254). This will be the bus number of the new bus; All
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 13fbfd01b2..510e766cfd 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -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");
+ return -1;
+ }
+ break;
case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT_PORT:
case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_SWITCH_DOWNSTREAM_PORT:
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_PCIE_ROOT_PORT_HOTPLUG)) {
@@ -3889,7 +3897,6 @@ qemuValidateDomainDeviceDefControllerPCI(const virDomainControllerDef *cont,
}
break;
- case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT:
case VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE:
case VIR_DOMAIN_CONTROLLER_MODEL_DMI_TO_PCI_BRIDGE:
case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_SWITCH_UPSTREAM_PORT:
diff --git a/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.xml b/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.xml
new file mode 100644
index 0000000000..93f2779f68
--- /dev/null
+++ b/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.xml
@@ -0,0 +1,30 @@
+<domain type='qemu'>
+ <name>i440fx</name>
+ <uuid>56f5055c-1b8d-490c-844a-ad646a1caaaa</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type>
+ <boot dev='network'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='pci' index='0' model='pci-root'>
+ <target hotplug='off'/>
+ </controller>
+ <controller type='usb' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </memballoon>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.xml b/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.xml
new file mode 100644
index 0000000000..7c9241958c
--- /dev/null
+++ b/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.xml
@@ -0,0 +1,30 @@
+<domain type='qemu'>
+ <name>i440fx</name>
+ <uuid>56f5055c-1b8d-490c-844a-ad646a1caaaa</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type>
+ <boot dev='network'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='pci' index='0' model='pci-root'>
+ <target hotplug='on'/>
+ </controller>
+ <controller type='usb' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </memballoon>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/pc-i440fx-acpi-root-hotplug-disable.xml b/tests/qemuxml2xmloutdata/pc-i440fx-acpi-root-hotplug-disable.xml
new file mode 120000
index 0000000000..0570e40273
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/pc-i440fx-acpi-root-hotplug-disable.xml
@@ -0,0 +1 @@
+../qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.xml
\ No newline at end of file
diff --git a/tests/qemuxml2xmloutdata/pc-i440fx-acpi-root-hotplug-enable.xml b/tests/qemuxml2xmloutdata/pc-i440fx-acpi-root-hotplug-enable.xml
new file mode 120000
index 0000000000..2b0e42925f
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/pc-i440fx-acpi-root-hotplug-enable.xml
@@ -0,0 +1 @@
+../qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.xml
\ No newline at end of file
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 49b291fadb..eb638c112d 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -424,6 +424,10 @@ mymain(void)
DO_TEST_NOCAPS("input-usbtablet");
DO_TEST_NOCAPS("misc-acpi");
DO_TEST("misc-disable-s3", QEMU_CAPS_PIIX_DISABLE_S3);
+ DO_TEST("pc-i440fx-acpi-root-hotplug-disable",
+ QEMU_CAPS_PIIX_ACPI_ROOT_PCI_HOTPLUG);
+ DO_TEST("pc-i440fx-acpi-root-hotplug-enable",
+ QEMU_CAPS_PIIX_ACPI_ROOT_PCI_HOTPLUG);
DO_TEST("misc-disable-suspends",
QEMU_CAPS_PIIX_DISABLE_S3,
QEMU_CAPS_PIIX_DISABLE_S4);
--
2.25.1
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. /
>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@anisinha.ca>
>---
> 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");
Jano
>+ return -1;
>+ }
>+ break;
> case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT_PORT:
> case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_SWITCH_DOWNSTREAM_PORT:
> if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_PCIE_ROOT_PORT_HOTPLUG)) {
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@anisinha.ca>
> > ---
> > 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.
On 9/27/21 4:05 AM, 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. /
>
>> 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@anisinha.ca>
>> ---
>> 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"),
Wouldn't it be better if "hotplug" was also put in the arg list rather
than inline in the function? That would avoid some overzealous
translator attempting to translate that word. (Or maybe just use the
function virReportControllerInvalidOption() for both of these error
cases, thus removing both strings)
On Mon, 27 Sep 2021, Laine Stump wrote:
> On 9/27/21 4:05 AM, 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. /
> >
> > > 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@anisinha.ca>
> > > ---
> > > 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"),
>
> Wouldn't it be better if "hotplug" was also put in the arg list rather than
> inline in the function? That would avoid some overzealous translator
> attempting to translate that word. (Or maybe just use the function
> virReportControllerInvalidOption() for both of these error cases, thus
> removing both strings)
virReportControllerInvalidOption() would be confusing/incorrect. "option
foo is not valid for PCI controller ..." etc is confusing. Better to
be more explicit and say that the option is not supported by Qemu binary
that is being used (maybe an upgrade will help?).
© 2016 - 2026 Red Hat, Inc.