[PATCH v3 3/5] conf: introduce acpi-hotplug-bridge and acpi-root-hotplug pm options
Laine Stump
laine at redhat.com
Tue Sep 28 17:56:24 UTC 2021
On 9/28/21 12:54 PM, Ani Sinha wrote:
>
>
> On Tue, Sep 28, 2021 at 10:17 PM Laine Stump <laine at redhat.com
> <mailto:laine at redhat.com>> wrote:
>
> On 9/28/21 4:44 AM, Daniel P. Berrangé wrote:
> > On Sun, Sep 12, 2021 at 08:56:29AM +0530, Ani Sinha wrote:
> >> This change introduces libvirt xml support for the following two
> pm options:
> >>
> >> <pm>
> >> <acpi-hotplug-bridge enabled='no'/>
> >> <acpi-root-hotplug enabled='yes'/>
> >> </pm>
> >
> >
> >> +``acpi-hotplug-bridge``
> >> + :since:`Since 7.8.0` This option enables or disables BIOS
> ACPI based hotplug support
> >> + for cold plugged bridges. It is available only for x86
> guests, both for q35 and pc
> >> + machine types. For pc machines, the support is available
> from `QEMU 2.12`. For q35
> >> + machines, the support is available from `QEMU 6.1`. Examples
> of cold plugged bridges
> >> + include PCI-PCI bridges for pc machine types (pci-bridge
> controller). For q35 machines,
> >> + it includes PCIE root ports (pcie-root-port controller).
> This is a global option that
> >> + affects all bridges. No other bridge specific option is
> required to be specified.
> >
> > Can you confirm my understanding of the situation..
> >
> > - i440fx / PCI topology - hotplug always uses ACPI
> >
> > - q35 / PCIe topology - hotplug historically used native PCIe
> hotplug,
> > but in 6.1 switched to ACPI
> >
> > Given, the name "acpi-hotplug-bridge", am I right that this option
> > has *no* effect, if the q35 machine is using native PCIe hotplug
> > approach ? IOW, is it a no-op until 6.1 based machine types for
> q35 ?
>
> I *think* that in machinetypes where the default is native-pcie
> hotplug,
> setting acpi-hotplug-bridge=on
>
>
> 6.1 not only introduced this option/command line in Qemu but also
> flipped the switch to make ACPI hotplug default for pcie root ports. So
> there are no officially released version of Qemu where this command
> line exists and the default is native pcie hotplug.
You're assuming that everyone will use the canonical "q35" machinetype
rather than a specific versioned machinetype (e.g. "pc-q35-6.0"). For
pre-6.1 machinetypes, the default will still be native-pcie hotplug,
even when running qemu-6.1+.
>
>
> will simultaneously enable ACPI hotplug
> and disable native-pcie hotplug for all pcie-root-ports and
> pcie-downstream-ports.
>
>
> This is for 6.1 based machines as well.
>
> Similarly on 6.1-based machinetypes, setting
> acpi-hotplug-bridge=off will disable ACPI hotplug and enable
> native-pcie
> hotplug.
>
> On 440fx, where the default has always been ACPI (and where SHPC
> hotplug
> has been disabled), acpi-hotplug-bridge=on will be a NOP, and
> acpi-hotplug-bridge=off will completely disable hotplug on any
> pci-bridge (but *not* on pci-root).
>
> As for the acpi-hotplug-root option, that is only valid for 440fx, is
> "on" by default, and when acpi-hotplug-root=off it will completely
> disable hotplug to any slot on pci-root.
>
> (for completeness - when a pcie-root-port or pcie-downstream-port has
> <target hotplug='off'/>, that will disable whatever hotplug mode would
> have been enabled for the controller - no hotplug at all will be
> possible on that controller. QEMU also has a "native_hotplug" option
> (not supported in libvirt) for pcie-root-ports and
> pcie-downstream-ports
> which can be used to enable native-pcie hotplug on a specific
> controller
> when it had been disabled (in favor of ACPI) with the global
> acpi-hotplug-bridge ).
>
More information about the libvir-list
mailing list