[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 0/6] Use ACPI PCI hot-plug for Q35
From: |
Julia Suvorova |
Subject: |
[PATCH v6 0/6] Use ACPI PCI hot-plug for Q35 |
Date: |
Tue, 13 Jul 2021 02:41:59 +0200 |
The patch set consists of two parts:
patches 1-3: introduce new feature
'acpi-pci-hotplug-with-bridge-support' on Q35
patches 4-6: make the feature default along with changes in ACPI tables
With the feature disabled Q35 falls back to the native hot-plug.
Pros
* no racy behavior during boot (see 110c477c2ed)
* eject is possible - according to PCIe spec, attention button
press should lead to power off, and then the adapter should be
removed manually. As there is no power down state exists in QEMU,
we cannot distinguish between an eject and a power down
request.
* no delay during deleting - after the actual power off software
must wait at least 1 second before indicating about it. This case
is quite important for users, it even has its own bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1594168
* no timer-based behavior - in addition to the previous example,
the attention button has a 5-second waiting period, during which
the operation can be canceled with a second press. While this
looks fine for manual button control, automation will result in
the need to queue or drop events, and the software receiving
events in all sort of unspecified combinations of attention/power
indicator states, which is racy and uppredictable.
* fixes or reduces the likelihood of the bugs:
* https://bugzilla.redhat.com/show_bug.cgi?id=1833187
* https://bugzilla.redhat.com/show_bug.cgi?id=1657077
* https://bugzilla.redhat.com/show_bug.cgi?id=1669931
* https://bugzilla.redhat.com/show_bug.cgi?id=1678290
Cons:
* no access to possible features presented in slot capabilities
(this is only surprise removal AFAIK)
v6:
* move acpi_pcihp_disable_root_bus() changes into "Enable ACPI
PCI hot-plug" patch
* fix mips compilation [Michael, Marcel]
* additional check in pm_reset() [David]
* rename property to "native-hotplug" [Igor]
v5:
* make sugar property on TYPE_PCIE_SLOT
instead of old TYPE_MACHINE property [Igor]
* minor style changes
v4:
* regain per-port control over hot-plug
* rebased over acpi-index changes
* set property on machine type to
make pci code more generic [Igor, Michael]
v3:
* drop change of _OSC to allow SHPC on hotplugged bridges
* use 'acpi-root-pci-hotplug'
* add migration states [Igor]
* minor style changes
v2:
* new ioport range for acpiphp [Gerd]
* drop find_pci_host() [Igor]
* explain magic numbers in _OSC [Igor]
* drop build_q35_pci_hotplug() wrapper [Igor]
Julia Suvorova (6):
hw/i386/acpi-build: Add ACPI PCI hot-plug methods to Q35
hw/acpi/ich9: Enable ACPI PCI hot-plug
hw/pci/pcie: Do not set HPC flag if acpihp is used
bios-tables-test: Allow changes in DSDT ACPI tables
hw/acpi/ich9: Set ACPI PCI hot-plug as default on Q35
bios-tables-test: Update golden binaries
hw/i386/acpi-build.h | 5 +++
include/hw/acpi/ich9.h | 5 +++
include/hw/acpi/pcihp.h | 3 +-
include/hw/pci/pcie_port.h | 5 ++-
hw/acpi/acpi-x86-stub.c | 6 +++
hw/acpi/ich9.c | 70 ++++++++++++++++++++++++++++++
hw/acpi/pcihp.c | 26 ++++++++---
hw/acpi/piix4.c | 4 +-
hw/core/machine.c | 1 -
hw/i386/acpi-build.c | 44 ++++++++++++-------
hw/i386/pc.c | 1 +
hw/i386/pc_q35.c | 11 +++++
hw/pci/pcie.c | 8 +++-
hw/pci/pcie_port.c | 1 +
tests/data/acpi/q35/DSDT | Bin 7859 -> 8289 bytes
tests/data/acpi/q35/DSDT.acpihmat | Bin 9184 -> 9614 bytes
tests/data/acpi/q35/DSDT.bridge | Bin 7877 -> 11003 bytes
tests/data/acpi/q35/DSDT.cphp | Bin 8323 -> 8753 bytes
tests/data/acpi/q35/DSDT.dimmpxm | Bin 9513 -> 9943 bytes
tests/data/acpi/q35/DSDT.ipmibt | Bin 7934 -> 8364 bytes
tests/data/acpi/q35/DSDT.memhp | Bin 9218 -> 9648 bytes
tests/data/acpi/q35/DSDT.mmio64 | Bin 8990 -> 9419 bytes
tests/data/acpi/q35/DSDT.nohpet | Bin 7717 -> 8147 bytes
tests/data/acpi/q35/DSDT.numamem | Bin 7865 -> 8295 bytes
tests/data/acpi/q35/DSDT.tis | Bin 8465 -> 8894 bytes
25 files changed, 165 insertions(+), 25 deletions(-)
--
2.30.2
- [PATCH v6 0/6] Use ACPI PCI hot-plug for Q35,
Julia Suvorova <=
- [PATCH v6 1/6] hw/i386/acpi-build: Add ACPI PCI hot-plug methods to Q35, Julia Suvorova, 2021/07/12
- [PATCH v6 2/6] hw/acpi/ich9: Enable ACPI PCI hot-plug, Julia Suvorova, 2021/07/12
- [PATCH v6 3/6] hw/pci/pcie: Do not set HPC flag if acpihp is used, Julia Suvorova, 2021/07/12
- [PATCH v6 4/6] bios-tables-test: Allow changes in DSDT ACPI tables, Julia Suvorova, 2021/07/12
- [PATCH v6 5/6] hw/acpi/ich9: Set ACPI PCI hot-plug as default on Q35, Julia Suvorova, 2021/07/12