[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 05/23] hw/acpi/ich9: Set ACPI PCI hot-plug as default on Q35
From: |
Michael S. Tsirkin |
Subject: |
[PULL 05/23] hw/acpi/ich9: Set ACPI PCI hot-plug as default on Q35 |
Date: |
Tue, 13 Jul 2021 18:10:19 -0400 |
From: Julia Suvorova <jusual@redhat.com>
Q35 has three different types of PCI devices hot-plug: PCIe Native,
SHPC Native and ACPI hot-plug. This patch changes the default choice
for cold-plugged bridges from PCIe Native to ACPI Hot-plug with
ability to use SHPC and PCIe Native for hot-plugged bridges.
This is a list of the PCIe Native hot-plug issues that led to this
change:
* no racy behavior during boot (see 110c477c2ed)
* 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:
* https://bugzilla.redhat.com/show_bug.cgi?id=1752465
* https://bugzilla.redhat.com/show_bug.cgi?id=1690256
To return to PCIe Native hot-plug:
-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
Known issue: older linux guests need the following flag
to allow hotplugged pci express devices to use io:
-device pcie-root-port,io-reserve=4096.
io is unusual for pci express so this seems minor.
We'll fix this by a follow up patch.
Signed-off-by: Julia Suvorova <jusual@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20210713004205.775386-6-jusual@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
---
hw/acpi/ich9.c | 2 +-
hw/i386/pc.c | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index 2f4eb453ac..778e27b659 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -427,7 +427,7 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm)
pm->disable_s3 = 0;
pm->disable_s4 = 0;
pm->s4_val = 2;
- pm->use_acpi_hotplug_bridge = false;
+ pm->use_acpi_hotplug_bridge = true;
object_property_add_uint32_ptr(obj, ACPI_PM_PROP_PM_IO_BASE,
&pm->pm_io_base, OBJ_PROP_FLAG_READ);
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 8e1220db72..7e03848792 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -98,6 +98,7 @@ GlobalProperty pc_compat_6_0[] = {
{ "qemu64" "-" TYPE_X86_CPU, "family", "6" },
{ "qemu64" "-" TYPE_X86_CPU, "model", "6" },
{ "qemu64" "-" TYPE_X86_CPU, "stepping", "3" },
+ { "ICH9-LPC", "acpi-pci-hotplug-with-bridge-support", "off" },
};
const size_t pc_compat_6_0_len = G_N_ELEMENTS(pc_compat_6_0);
--
MST
- [PULL 00/23] pc,pci,virtio: lots of new features, Michael S. Tsirkin, 2021/07/13
- [PULL 01/23] hw/i386/acpi-build: Add ACPI PCI hot-plug methods to Q35, Michael S. Tsirkin, 2021/07/13
- [PULL 03/23] hw/pci/pcie: Do not set HPC flag if acpihp is used, Michael S. Tsirkin, 2021/07/13
- [PULL 02/23] hw/acpi/ich9: Enable ACPI PCI hot-plug, Michael S. Tsirkin, 2021/07/13
- [PULL 05/23] hw/acpi/ich9: Set ACPI PCI hot-plug as default on Q35,
Michael S. Tsirkin <=
- [PULL 07/23] vhost-user-rng: Add vhost-user-rng implementation, Michael S. Tsirkin, 2021/07/13
- [PULL 08/23] vhost-user-rng-pci: Add vhost-user-rng-pci implementation, Michael S. Tsirkin, 2021/07/13
- [PULL 09/23] vhost-user-rng: backend: Add RNG vhost-user daemon implementation, Michael S. Tsirkin, 2021/07/13
- [PULL 11/23] hw/virtio: add boilerplate for vhost-user-i2c device, Michael S. Tsirkin, 2021/07/13
- [PULL 12/23] hw/virtio: add vhost-user-i2c-pci boilerplate, Michael S. Tsirkin, 2021/07/13
- [PULL 13/23] docs: Add '-device intel-iommu' entry, Michael S. Tsirkin, 2021/07/13
- [PULL 14/23] hw/pci/pci_host: Allow PCI host to bypass iommu, Michael S. Tsirkin, 2021/07/13
- [PULL 15/23] hw/pxb: Add a bypass iommu property, Michael S. Tsirkin, 2021/07/13
- [PULL 17/23] hw/i386: Add a default_bus_bypass_iommu pc machine option, Michael S. Tsirkin, 2021/07/13
- [PULL 18/23] hw/pci: Add pci_bus_range() to get PCI bus number range, Michael S. Tsirkin, 2021/07/13