[PATCH 0/5] Fix Q35 ACPI PCI Hot-plug I/O issues

Julia Suvorova posted 5 patches 2 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211110053014.489591-1-jusual@redhat.com
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Ani Sinha <ani@anisinha.ca>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <ehabkost@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
There is a newer version of this series
include/hw/acpi/ich9.h                    |   1 +
include/hw/pci/pcie_port.h                |   2 +-
hw/acpi/ich9.c                            |  18 ++++++++++++++++++
hw/i386/acpi-build.c                      |  12 ++++++++----
hw/i386/pc.c                              |   2 ++
hw/i386/pc_q35.c                          |   9 +++++++--
hw/pci-bridge/gen_pcie_root_port.c        |   6 +++++-
hw/pci/pcie.c                             |   2 +-
hw/pci/pcie_port.c                        |   2 +-
tests/data/acpi/q35/DSDT                  | Bin 8289 -> 8289 bytes
tests/data/acpi/q35/DSDT.acpihmat         | Bin 9614 -> 9614 bytes
tests/data/acpi/q35/DSDT.bridge           | Bin 11003 -> 11003 bytes
tests/data/acpi/q35/DSDT.cphp             | Bin 8753 -> 8753 bytes
tests/data/acpi/q35/DSDT.dimmpxm          | Bin 9943 -> 9943 bytes
tests/data/acpi/q35/DSDT.dmar             | Bin 0 -> 8289 bytes
tests/data/acpi/q35/DSDT.ipmibt           | Bin 8364 -> 8364 bytes
tests/data/acpi/q35/DSDT.ivrs             | Bin 8306 -> 8306 bytes
tests/data/acpi/q35/DSDT.memhp            | Bin 9648 -> 9648 bytes
tests/data/acpi/q35/DSDT.mmio64           | Bin 9419 -> 9419 bytes
tests/data/acpi/q35/DSDT.multi-bridge     | Bin 8583 -> 8583 bytes
tests/data/acpi/q35/DSDT.nohpet           | Bin 8147 -> 8147 bytes
tests/data/acpi/q35/DSDT.nosmm            | Bin 0 -> 8289 bytes
tests/data/acpi/q35/DSDT.numamem          | Bin 8295 -> 8295 bytes
tests/data/acpi/q35/DSDT.smm-compat       | Bin 0 -> 8289 bytes
tests/data/acpi/q35/DSDT.smm-compat-nosmm | Bin 0 -> 8289 bytes
tests/data/acpi/q35/DSDT.tis.tpm12        | Bin 8894 -> 8894 bytes
tests/data/acpi/q35/DSDT.tis.tpm2         | Bin 8894 -> 8894 bytes
tests/data/acpi/q35/DSDT.xapic            | Bin 35652 -> 35652 bytes
28 files changed, 44 insertions(+), 10 deletions(-)
create mode 100644 tests/data/acpi/q35/DSDT.dmar
create mode 100644 tests/data/acpi/q35/DSDT.nosmm
create mode 100644 tests/data/acpi/q35/DSDT.smm-compat
create mode 100644 tests/data/acpi/q35/DSDT.smm-compat-nosmm
[PATCH 0/5] Fix Q35 ACPI PCI Hot-plug I/O issues
Posted by Julia Suvorova 2 years, 6 months ago
Attempt [1] to fix I/O allocation with the 'reserve-io' hint on each
pcie-root-port resulted in regression [2-3]. This patchset aims to fix
it by addressing the root cause of the problem - the disabled PCIe
Slot HPC bit.

[1] 'hw/pcie-root-port: Fix hotplug for PCI devices requiring IO'
[2] https://gitlab.com/qemu-project/qemu/-/issues/641
[3] https://bugzilla.redhat.com/show_bug.cgi?id=2006409

Julia Suvorova (5):
  hw/pci/pcie_port: Rename 'native-hotplug' to 'native-hpc-bit'
  hw/acpi/ich9: Add compatibility option for 'native-hpc-bit'
  bios-tables-test: Allow changes in DSDT ACPI tables
  hw/i386/acpi-build: Deny control on PCIe Native Hot-plug in _OSC
  bios-tables-test: Update golden binaries

 include/hw/acpi/ich9.h                    |   1 +
 include/hw/pci/pcie_port.h                |   2 +-
 hw/acpi/ich9.c                            |  18 ++++++++++++++++++
 hw/i386/acpi-build.c                      |  12 ++++++++----
 hw/i386/pc.c                              |   2 ++
 hw/i386/pc_q35.c                          |   9 +++++++--
 hw/pci-bridge/gen_pcie_root_port.c        |   6 +++++-
 hw/pci/pcie.c                             |   2 +-
 hw/pci/pcie_port.c                        |   2 +-
 tests/data/acpi/q35/DSDT                  | Bin 8289 -> 8289 bytes
 tests/data/acpi/q35/DSDT.acpihmat         | Bin 9614 -> 9614 bytes
 tests/data/acpi/q35/DSDT.bridge           | Bin 11003 -> 11003 bytes
 tests/data/acpi/q35/DSDT.cphp             | Bin 8753 -> 8753 bytes
 tests/data/acpi/q35/DSDT.dimmpxm          | Bin 9943 -> 9943 bytes
 tests/data/acpi/q35/DSDT.dmar             | Bin 0 -> 8289 bytes
 tests/data/acpi/q35/DSDT.ipmibt           | Bin 8364 -> 8364 bytes
 tests/data/acpi/q35/DSDT.ivrs             | Bin 8306 -> 8306 bytes
 tests/data/acpi/q35/DSDT.memhp            | Bin 9648 -> 9648 bytes
 tests/data/acpi/q35/DSDT.mmio64           | Bin 9419 -> 9419 bytes
 tests/data/acpi/q35/DSDT.multi-bridge     | Bin 8583 -> 8583 bytes
 tests/data/acpi/q35/DSDT.nohpet           | Bin 8147 -> 8147 bytes
 tests/data/acpi/q35/DSDT.nosmm            | Bin 0 -> 8289 bytes
 tests/data/acpi/q35/DSDT.numamem          | Bin 8295 -> 8295 bytes
 tests/data/acpi/q35/DSDT.smm-compat       | Bin 0 -> 8289 bytes
 tests/data/acpi/q35/DSDT.smm-compat-nosmm | Bin 0 -> 8289 bytes
 tests/data/acpi/q35/DSDT.tis.tpm12        | Bin 8894 -> 8894 bytes
 tests/data/acpi/q35/DSDT.tis.tpm2         | Bin 8894 -> 8894 bytes
 tests/data/acpi/q35/DSDT.xapic            | Bin 35652 -> 35652 bytes
 28 files changed, 44 insertions(+), 10 deletions(-)
 create mode 100644 tests/data/acpi/q35/DSDT.dmar
 create mode 100644 tests/data/acpi/q35/DSDT.nosmm
 create mode 100644 tests/data/acpi/q35/DSDT.smm-compat
 create mode 100644 tests/data/acpi/q35/DSDT.smm-compat-nosmm

-- 
2.31.1