<div dir="auto">Also just for the statistics , it's been almost 2 months now since the effort on the two patches started. </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 8, 2021 at 4:46 AM Ani Sinha <<a href="mailto:ani@anisinha.ca">ani@anisinha.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="auto">Other than laine doesn't anyone have any feedback on this patch set? Timely reviews help contributions. It's difficult to sit on a patch set and keep rebasing for ever. </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 5, 2021 at 11:21 AM Ani Sinha <<a href="mailto:ani@anisinha.ca" target="_blank">ani@anisinha.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">changelog:<br>
<br>
v6: rebased to latest. capabilities have been renamed as per suggestions that<br>
    were made here:<br>
    <a href="https://listman.redhat.com/archives/libvir-list/2021-October/msg00061.html" rel="noreferrer" target="_blank">https://listman.redhat.com/archives/libvir-list/2021-October/msg00061.html</a><br>
v5: rebased the patchset with the latest master.<br>
v4: split the original series into two - pci-root controller specific one<br>
    (<a href="https://www.mail-archive.com/libvir-list@redhat.com/msg221645.html" rel="noreferrer" target="_blank">https://www.mail-archive.com/libvir-list@redhat.com/msg221645.html</a>)<br>
    and this one specific to pci bridges.<br>
    The conf xml has been introduced as per suggestion by Berrange here:<br>
    <a href="https://patchew.org/Libvirt/20210912032631.2853520-1-ani@anisinha.ca" rel="noreferrer" target="_blank">https://patchew.org/Libvirt/20210912032631.2853520-1-ani@anisinha.ca</a><br>
    Changes has been introduced to parse and validate the xml accordingly<br>
    as well as to add backend qemu commandline option.<br>
v3: reorganized the patches as per Laine's suggestion. Added more<br>
    details in commit messages. Added conf description in formatdomain.rst.<br>
    Added changelog for next release.<br>
v2: fixed bugs and added additional missing unit tests.<br>
v1: initial implementation. Had some bugs and missed some unit tests<br>
<br>
This change introduces a new libvirt sub-element <pci> under <features> that<br>
can be used to configure all pci related features.<br>
Currently the only sub-sub element supported by this sub-element is<br>
'acpi-bridge-hotplug' as shown below:<br>
<br>
<features><br>
  <pci><br>
    <acpi-bridge-hotplug state='on|off'/><br>
  </pci><br>
</features><br>
<br>
The above option is only available for qemu driver and that too for x86 guests<br>
only. It is a global option.<br>
<br>
'acpi-bridge-hotplug' option enables or disables ACPI hotplug support for<br>
cold-plugged pci bridges. Examples of bridges include PCI-PCI bridge<br>
(pci-bridge controller) or PCIe-PCI bridges for pc machines and<br>
pcie-root-port controller for q35 machines. Being global option, no other<br>
bridge specific option are required. For pc machine type in x86, this option<br>
is available in qemu for a long time, from version 2.1.<br>
Please see the following changes in qemu repo:<br>
<br>
9e047b982452c6 ("piix4: add acpi pci hotplug support")<br>
133a2da488062e ("pc: acpi: generate AML only for PCI0 devices if PCI bridge hotplug is disabled")<br>
<br>
For q35 machine type, this was introduced in qemu 6.1 with the following<br>
changes in qemu repo:<br>
<br>
(a) c0e427d6eb5fef ("hw/acpi/ich9: Enable ACPI PCI hot-plug")<br>
(b) 17858a16950860 ("hw/acpi/ich9: Set ACPI PCI hot-plug as default on Q35")<br>
<br>
The reasons for enabling ACPI based hotplug for PCIe (q35) based machines (as<br>
opposed to native hotplug) are outlined in (b). There are use cases where users<br>
would still want to use native hotplug (see notes). Therefore, this config option<br>
enables users to choose either ACPI based hotplug or native hotplug for bridges<br>
(for example for pcie root port controller in q35 machines).<br>
<br>
Notes:<br>
One concrete example of why one might still want to use native hotplug with<br>
pcie-root-port controller is the fact that we are still discovering issues with<br>
acpi hotplug on PCIE. One such issue is:<br>
<a href="https://lists.gnu.org/archive/html/qemu-devel/2021-09/msg02146.html" rel="noreferrer" target="_blank">https://lists.gnu.org/archive/html/qemu-devel/2021-09/msg02146.html</a><br>
Another reason is that users have been using native hotplug on pcie root ports<br>
up until now. They have built and tested their systems based on native hotplug.<br>
They may not want to suddenly move to acpi based hotplug just because it is now<br>
the default in qemu. Supporting the option to chose one or the other through<br>
libvirt makes things simpler for end users.<br>
<br>
Ani Sinha (4):<br>
  qemu: capablities: detect presence of<br>
    acpi-pci-hotplug-with-bridge-support<br>
  conf: introduce support for acpi-bridge-hotplug feature<br>
  qemu: command: add support for acpi-bridge-hotplug feature<br>
  NEWS: add new acpi pci hotplug config option in the release note for<br>
    next release<br>
<br>
 NEWS.rst                                      |  7 ++<br>
 docs/formatdomain.rst                         | 11 +++<br>
 docs/schemas/domaincommon.rng                 | 15 ++++<br>
 src/conf/domain_conf.c                        | 89 ++++++++++++++++++-<br>
 src/conf/domain_conf.h                        |  9 ++<br>
 src/qemu/qemu_capabilities.c                  |  4 +<br>
 src/qemu/qemu_capabilities.h                  |  2 +<br>
 src/qemu/qemu_command.c                       | 14 +++<br>
 src/qemu/qemu_validate.c                      | 46 ++++++++++<br>
 .../caps_2.11.0.x86_64.xml                    |  1 +<br>
 .../caps_2.12.0.x86_64.xml                    |  1 +<br>
 .../caps_3.0.0.x86_64.xml                     |  1 +<br>
 .../caps_3.1.0.x86_64.xml                     |  1 +<br>
 .../caps_4.0.0.x86_64.xml                     |  1 +<br>
 .../caps_4.1.0.x86_64.xml                     |  1 +<br>
 .../caps_4.2.0.x86_64.xml                     |  1 +<br>
 .../caps_5.0.0.x86_64.xml                     |  1 +<br>
 .../caps_5.1.0.x86_64.xml                     |  1 +<br>
 .../caps_5.2.0.x86_64.xml                     |  1 +<br>
 .../caps_6.0.0.x86_64.xml                     |  1 +<br>
 .../caps_6.1.0.x86_64.xml                     |  2 +<br>
 .../aarch64-acpi-hotplug-bridge-disable.err   |  1 +<br>
 .../aarch64-acpi-hotplug-bridge-disable.xml   | 33 +++++++<br>
 ...pc-i440fx-acpi-hotplug-bridge-disable.args | 31 +++++++<br>
 .../pc-i440fx-acpi-hotplug-bridge-disable.err |  1 +<br>
 .../pc-i440fx-acpi-hotplug-bridge-disable.xml | 33 +++++++<br>
 .../pc-i440fx-acpi-hotplug-bridge-enable.xml  | 33 +++++++<br>
 .../q35-acpi-hotplug-bridge-disable.args      | 33 +++++++<br>
 .../q35-acpi-hotplug-bridge-disable.err       |  1 +<br>
 .../q35-acpi-hotplug-bridge-disable.xml       | 47 ++++++++++<br>
 .../q35-acpi-hotplug-bridge-enable.xml        | 47 ++++++++++<br>
 tests/qemuxml2argvtest.c                      | 16 ++++<br>
 .../pc-i440fx-acpi-hotplug-bridge-disable.xml |  1 +<br>
 .../pc-i440fx-acpi-hotplug-bridge-enable.xml  |  1 +<br>
 .../q35-acpi-hotplug-bridge-disable.xml       |  1 +<br>
 .../q35-acpi-hotplug-bridge-enable.xml        |  1 +<br>
 tests/qemuxml2xmltest.c                       | 14 +++<br>
 37 files changed, 503 insertions(+), 1 deletion(-)<br>
 create mode 100644 tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.err<br>
 create mode 100644 tests/qemuxml2argvdata/aarch64-acpi-hotplug-bridge-disable.xml<br>
 create mode 100644 tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.args<br>
 create mode 100644 tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.err<br>
 create mode 100644 tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-disable.xml<br>
 create mode 100644 tests/qemuxml2argvdata/pc-i440fx-acpi-hotplug-bridge-enable.xml<br>
 create mode 100644 tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.args<br>
 create mode 100644 tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.err<br>
 create mode 100644 tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-disable.xml<br>
 create mode 100644 tests/qemuxml2argvdata/q35-acpi-hotplug-bridge-enable.xml<br>
 create mode 120000 tests/qemuxml2xmloutdata/pc-i440fx-acpi-hotplug-bridge-disable.xml<br>
 create mode 120000 tests/qemuxml2xmloutdata/pc-i440fx-acpi-hotplug-bridge-enable.xml<br>
 create mode 120000 tests/qemuxml2xmloutdata/q35-acpi-hotplug-bridge-disable.xml<br>
 create mode 120000 tests/qemuxml2xmloutdata/q35-acpi-hotplug-bridge-enable.xml<br>
<br>
-- <br>
2.25.1<br>
<br>
</blockquote></div></div>
</blockquote></div></div>