On Wed, 20 Oct 2021, Laine Stump wrote:

> On 10/18/21 12:31 AM, Ani Sinha wrote:
> > Error messages must conform to spec as specified here:
> > https://www.libvirt.org/coding-style.html#error-message-format
> >
> > This change encloses format specifiers in quotes and unbreaks error
> > messages.
> >
> > Fixes: 8eadf82fb5 ("conf: introduce option to enable/disable pci hotplug on
> > pci-root controller")
> > Fixes: 7300ccc9b3 ("conf: introduce support for acpi-bridge-hotplug
> > feature")
> >
> > Signed-off-by: Ani Sinha <a...@anisinha.ca>
>
> Hi Ani,
>
> Thanks for following up on your contributions even after they've been pushed
> :-)
>
> The parts of this patch that are relevent to the pci-root hotplug look fine
> and can be pushed.
>

I will send out a separate patch.


> But the QEMU people have discovered problems with the
> "acpi-pci-hotplug-with-bridge-support" switch used by libvirt's
> <acpi-bridge-hotplug> switch that is forcing them to rethink not just their
> implementation/design.
>
> Basically the way that the QEMU switch works (setting it off will enable
> native and disable ACPI hotplug, while setting it on will disable native and
> enable ACPI), while making logical sense from the outside, is "confusing" some
> guests - that's as much detail as I have, but it means that most likely that
> QEMU switch will be scrapped and one or more new (and possibly different)
> switches will be added in their place; it all seems to be up in the air right
> now.

Hmm. sadly I am not part of the discussion and I have no visibility
either. I guess I need to find a job with redhat :-)

Anyway, since we don't want to have code in libvirt for a QEMU switch
> that didn't work correctly in the beginning and was then replaced, and since
> it's highly likely that the new QEMU hotplug-selection method will work
> differently (and anyway isn't known now), our best course of action seems to
> be reverting all the acpi-bridge-hotplug patches for now - this is still
> possible since there hasn't been an official release since they were added.
>
> I've already made the revert patches (for the original 4 of the feature, plus
> 6 patches from pkrempa that fixed up test cases and such) and will be posting
> them in the morning with a (hopefully) slightly better explanation.

Sad. That was lot of effort seems to have gone waste ...

>
> I hope you don't find this too discouraging - just keep in mind that the
> reason for reverting isn't your code, but rather is because the QEMU feature
> your code is using turns out to not work as advertised, and if the libvirt
> code that is using it makes it into a release, then we will have to support it
> essentially forever.
>
> (NB: it's also completely possible (but looks to be very unlikely) that QEMU
> will figure out a way to solve their problems without modifying this switch,
> and we'll be able to simply re-push the reverted commits; we can't be sure of
> that right now though).
>
> More in the morning...
>
> > ---
> >   src/conf/domain_conf.c                                      | 6 ++----
> >   src/qemu/qemu_validate.c                                    | 6 +++---
> >   .../pc-i440fx-acpi-root-hotplug-disable.x86_64-5.1.0.err    | 2 +-
> >   .../pc-i440fx-acpi-root-hotplug-enable.x86_64-5.1.0.err     | 2 +-
> >   4 files changed, 7 insertions(+), 9 deletions(-)
> >
> > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> > index 6fcf86ba58..d5de07d13d 100644
> > --- a/src/conf/domain_conf.c
> > +++ b/src/conf/domain_conf.c
> > @@ -17557,8 +17557,7 @@ virDomainFeaturesPCIDefParse(virDomainDef *def,
> >           feature = virDomainPCITypeFromString((const char *)node->name);
> >           if (feature < 0) {
> >               virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > -                           _("unsupported PCI feature: %s"),
> > -                           node->name);
> > +                           _("unsupported PCI feature: '%s'"), node->name);
> >               return -1;
> >           }
> >   @@ -21833,8 +21832,7 @@ virDomainDefFeaturesCheckABIStability(virDomainDef
> > *src,
> >               case VIR_DOMAIN_PCI_ACPI_BRIDGE_HOTPLUG:
> >                   if (src->pci_features[i] != dst->pci_features[i]) {
> >                       virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > -                                   _("State of PCI feature '%s' differs: "
> > -                                     "source: '%s', destination: '%s'"),
> > +                                   _("State of PCI feature '%s' differs:
> > source: '%s', destination: '%s'"),
> >                                      virDomainPCITypeToString(i),
> >                                      
> > virTristateSwitchTypeToString(src->pci_features[i]),
> >                                      
> > virTristateSwitchTypeToString(dst->pci_features[i]));
> > diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
> > index 3045e4b64b..f93b697265 100644
> > --- a/src/qemu/qemu_validate.c
> > +++ b/src/qemu/qemu_validate.c
> > @@ -3947,7 +3947,7 @@ qemuValidateDomainDeviceDefControllerPCI(const
> > virDomainControllerDef *cont,
> >           case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT:
> >               if (!virQEMUCapsGet(qemuCaps,
> > QEMU_CAPS_PIIX4_ACPI_ROOT_PCI_HOTPLUG)) {
> >                   virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > -                               _("setting the %s property on a '%s' device
> > is not supported by this QEMU binary"),
> > +                               _("setting the '%s' property on a '%s'
> > device is not supported by this QEMU binary"),
> >                                  "hotplug", "pci-root");
> >                   return -1;
> >               }
> > @@ -3956,8 +3956,8 @@ qemuValidateDomainDeviceDefControllerPCI(const
> > virDomainControllerDef *cont,
> >           case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_SWITCH_DOWNSTREAM_PORT:
> >               if (!virQEMUCapsGet(qemuCaps,
> > QEMU_CAPS_PCIE_ROOT_PORT_HOTPLUG)) {
> >                   virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > -                               _("setting the hotplug property on a '%s'
> > device is not supported by this QEMU binary"),
> > -                               modelName);
> > +                               _("setting the '%s' property on a '%s'
> > device is not supported by this QEMU binary"),
> > +                               "hotplug", modelName);
> >                   return -1;
> >               }
> >               break;
> > diff --git
> > a/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.x86_64-5.1.0.err
> > b/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.x86_64-5.1.0.err
> > index b507f1f8bc..55ec41c476 100644
> > ---
> > a/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.x86_64-5.1.0.err
> > +++
> > b/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-disable.x86_64-5.1.0.err
> > @@ -1 +1 @@
> > -unsupported configuration: setting the hotplug property on a 'pci-root'
> > device is not supported by this QEMU binary
> > +unsupported configuration: setting the 'hotplug' property on a 'pci-root'
> > device is not supported by this QEMU binary
> > diff --git
> > a/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.x86_64-5.1.0.err
> > b/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.x86_64-5.1.0.err
> > index b507f1f8bc..55ec41c476 100644
> > ---
> > a/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.x86_64-5.1.0.err
> > +++
> > b/tests/qemuxml2argvdata/pc-i440fx-acpi-root-hotplug-enable.x86_64-5.1.0.err
> > @@ -1 +1 @@
> > -unsupported configuration: setting the hotplug property on a 'pci-root'
> > device is not supported by this QEMU binary
> > +unsupported configuration: setting the 'hotplug' property on a 'pci-root'
> > device is not supported by this QEMU binary
> >
>
>

Reply via email to