libvirt/docs/schemas
Ani Sinha 7300ccc9b3 conf: introduce support for acpi-bridge-hotplug feature
This change introduces a new libvirt sub-element <pci> under
<features> that can be used to configure all pci related features.
Currently the only sub-sub element supported by this sub-element is
'acpi-bridge-hotplug' as shown below:

<features>
  <pci>
    <acpi-bridge-hotplug state='on|off'/>
  </pci>
</features>

The above option is only available for the QEMU driver, for x86 guests
only. It is a global option, affecting all PCI bridge controllers on
the guest.

The 'acpi-bridge-hotplug' option enables or disables ACPI hotplug
support for cold-plugged pci bridges. Examples of bridges include the
PCI-PCI bridge (pci-bridge controller) for pc (i440fx) machinetypes,
or PCIe-PCI bridges and pcie-root-port controllers for q35
machinetypes.

For pc machinetypes in x86, this option has been available in QEMU
since version 2.1. Please see the following changes in qemu repo:

9e047b982452c6 ("piix4: add acpi pci hotplug support")
133a2da488062e ("pc: acpi: generate AML only for PCI0 devices if PCI
               bridge hotplug is disabled")

For q35 machinetypes, this was introduced in QEMU 6.1 with the
following changes in qemu repo:

(a) c0e427d6eb5fef ("hw/acpi/ich9: Enable ACPI PCI hot-plug")
(b) 17858a16950860 ("hw/acpi/ich9: Set ACPI PCI hot-plug as default on
                   Q35")

The reasons for enabling ACPI based hotplug for PCIe (q35) based
machines (as opposed to native hotplug) are outlined in (b). There are
use cases where users would still want to use native
hotplug. Therefore, this config option enables users to choose either
ACPI based hotplug or native hotplug for bridges (for example for pcie
root port controller in q35 machines).

Qemu capability validation checks have also been added along with
related unit tests to exercise the new conf option.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Laine Stump <laine@redhat.com>
2021-10-10 13:13:45 -04:00
..
basictypes.rng schema: Add define for object names 2021-01-08 09:18:21 +01:00
capability.rng whitespace clean-ups 2021-07-15 14:50:48 +02:00
cpu.rng
cputypes.rng schemas: Allow cache attribute for bandwidth element for HMAT 2021-07-08 16:28:30 +02:00
domain.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
domainbackup.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
domaincaps.rng conf: Add availability of s390-pv in domain capabilities 2021-07-21 13:30:30 +02:00
domaincheckpoint.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
domaincommon.rng conf: introduce support for acpi-bridge-hotplug feature 2021-10-10 13:13:45 -04:00
domainsnapshot.rng conf: snapshot: Add support for <metadata_cache> 2021-01-08 15:27:00 +01:00
interface.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
meson.build schema: Add schema for guest or host cpu definition 2020-10-07 09:18:07 +02:00
network.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
networkcommon.rng
networkport.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
nodedev.rng schemas: Allow <unique_id/> to be zero 2021-09-21 14:12:34 +02:00
nwfilter_params.rng
nwfilter.rng
nwfilterbinding.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
secret.rng
storagecommon.rng storage: add support for QCOW2 cluster_size option 2021-05-21 14:00:43 +02:00
storagepool.rng schema: Add define for object names 2021-01-08 09:18:21 +01:00
storagepoolcaps.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
storagevol.rng storage: add support for QCOW2 cluster_size option 2021-05-21 14:00:43 +02:00