From: Julia Suvorova <jusual@redhat.com>
To: qemu-devel@nongnu.org
Cc: Ani Sinha <ani@anisinha.ca>, Igor Mammedov <imammedo@redhat.com>,
Julia Suvorova <jusual@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: [RFC PATCH v3 0/7] Use ACPI PCI hot-plug for Q35
Date: Thu, 24 Sep 2020 09:00:06 +0200 [thread overview]
Message-ID: <20200924070013.165026-1-jusual@redhat.com> (raw)
The patch set consists of two parts:
patches 1-4: introduce new feature
'acpi-pci-hotplug-with-bridge-support' on Q35
patches 5-7: make the feature default along with changes in ACPI tables
This way maintainers can decide which way to choose without breaking
the patch set.
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:
* https://bugzilla.redhat.com/show_bug.cgi?id=1752465
* https://bugzilla.redhat.com/show_bug.cgi?id=1690256
Cons:
* lose per-port control over hot-plug (can be resolved)
* no access to possible features presented in slot capabilities
(this is only surprise removal AFAIK)
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 (7):
hw/acpi/pcihp: Enhance acpi_pcihp_disable_root_bus() to support Q35
hw/i386/acpi-build: Add ACPI PCI hot-plug methods to Q35
hw/pci/pcie: Do not initialize slot capability if acpihp is used
hw/acpi/ich9: Enable ACPI PCI hot-plug
bios-tables-test: Allow changes in DSDT ACPI tables
hw/acpi/ich9: Set ACPI PCI hot-plug as default
bios-tables-test: Update golden binaries
hw/i386/acpi-build.h | 7 ++++
include/hw/acpi/ich9.h | 5 +++
include/hw/acpi/pcihp.h | 3 +-
hw/acpi/ich9.c | 67 ++++++++++++++++++++++++++++++
hw/acpi/pcihp.c | 16 ++++---
hw/acpi/piix4.c | 4 +-
hw/i386/acpi-build.c | 31 ++++++++------
hw/i386/pc.c | 1 +
hw/pci/pcie.c | 16 +++++++
tests/data/acpi/q35/DSDT | Bin 7678 -> 7950 bytes
tests/data/acpi/q35/DSDT.acpihmat | Bin 9002 -> 9274 bytes
tests/data/acpi/q35/DSDT.bridge | Bin 7695 -> 9865 bytes
tests/data/acpi/q35/DSDT.cphp | Bin 8141 -> 8413 bytes
tests/data/acpi/q35/DSDT.dimmpxm | Bin 9331 -> 9603 bytes
tests/data/acpi/q35/DSDT.ipmibt | Bin 7753 -> 8025 bytes
tests/data/acpi/q35/DSDT.memhp | Bin 9037 -> 9309 bytes
tests/data/acpi/q35/DSDT.mmio64 | Bin 8808 -> 9080 bytes
tests/data/acpi/q35/DSDT.numamem | Bin 7684 -> 7956 bytes
tests/data/acpi/q35/DSDT.tis | Bin 8283 -> 8555 bytes
19 files changed, 129 insertions(+), 21 deletions(-)
--
2.25.4
next reply other threads:[~2020-09-24 7:02 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-24 7:00 Julia Suvorova [this message]
2020-09-24 7:00 ` [RFC PATCH v3 1/7] hw/acpi/pcihp: Enhance acpi_pcihp_disable_root_bus() to support Q35 Julia Suvorova
2020-09-24 10:53 ` Igor Mammedov
2020-09-24 10:54 ` Ani Sinha
2020-09-24 7:00 ` [RFC PATCH v3 2/7] hw/i386/acpi-build: Add ACPI PCI hot-plug methods to Q35 Julia Suvorova
2020-09-24 11:04 ` Igor Mammedov
2020-09-25 8:20 ` Gerd Hoffmann
2020-09-24 13:15 ` Ani Sinha
2020-09-24 13:58 ` Julia Suvorova
2020-09-24 7:00 ` [RFC PATCH v3 3/7] hw/pci/pcie: Do not initialize slot capability if acpihp is used Julia Suvorova
2020-09-24 7:36 ` Michael S. Tsirkin
2020-09-24 8:23 ` Julia Suvorova
2020-09-24 9:02 ` Michael S. Tsirkin
2020-09-24 11:54 ` Ani Sinha
2020-09-24 11:14 ` Igor Mammedov
2020-09-24 11:37 ` Ani Sinha
2020-09-24 7:00 ` [RFC PATCH v3 4/7] hw/acpi/ich9: Enable ACPI PCI hot-plug Julia Suvorova
2020-09-24 7:37 ` Michael S. Tsirkin
2020-09-24 11:28 ` Ani Sinha
2020-09-24 14:27 ` Julia Suvorova
2020-09-24 7:00 ` [RFC PATCH v3 5/7] bios-tables-test: Allow changes in DSDT ACPI tables Julia Suvorova
2020-09-24 10:57 ` Ani Sinha
2020-09-24 7:00 ` [RFC PATCH v3 6/7] hw/acpi/ich9: Set ACPI PCI hot-plug as default Julia Suvorova
2020-09-24 9:33 ` Igor Mammedov
2020-09-24 9:41 ` Michael S. Tsirkin
2020-09-24 10:36 ` Daniel P. Berrangé
2020-09-24 14:24 ` Julia Suvorova
2020-09-24 7:00 ` [RFC PATCH v3 7/7] bios-tables-test: Update golden binaries Julia Suvorova
2020-09-24 8:57 ` [RFC PATCH v3 0/7] Use ACPI PCI hot-plug for Q35 no-reply
2020-09-24 9:03 ` no-reply
2020-09-24 9:20 ` Michael S. Tsirkin
2020-10-01 8:55 ` Julia Suvorova
2020-10-01 11:40 ` Michael S. Tsirkin
2020-10-01 13:01 ` Ani Sinha
2020-10-01 15:25 ` Julia Suvorova
2020-10-01 15:54 ` Julia Suvorova
2020-10-01 16:11 ` Ani Sinha
2020-10-06 6:44 ` Michael S. Tsirkin
2020-09-24 9:30 ` Igor Mammedov
2020-09-24 9:39 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200924070013.165026-1-jusual@redhat.com \
--to=jusual@redhat.com \
--cc=ani@anisinha.ca \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).