All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/34] pci(pc/q35): acpi-index support on non-hotpluggable slots
@ 2023-03-02 16:15 Igor Mammedov
  2023-03-02 16:15 ` [PATCH v2 01/34] Revert "tests/qtest: Check for devices in bios-tables-test" Igor Mammedov
                   ` (33 more replies)
  0 siblings, 34 replies; 36+ messages in thread
From: Igor Mammedov @ 2023-03-02 16:15 UTC (permalink / raw)
  To: qemu-devel; +Cc: mst, berrange


Changelog:
  v2:
    * rebase on top mst's pull request
    * revert
        3aa50aa253 ("tests/qtest: Check for devices in bios-tables-test")
      which broke acpi tables test and rebuild due to skipping some tests
      even thought none of devices tests depend on weren't disabled
      that resulted in stale expected tables and merge conflicts.

Series extends acpi-index support to host-bridge(s) and bridges
with disabled hotplug (either explicitly or implicitly).
Whats new (it is still limited to 'pc' and 'q35' machines),
acpi-index now works for non-hotpluggable slots/nics:
 * q35: host-bridge
 * pc: host-bridge with disabled hotplug
       'PIIX4_PM.acpi-root-pci-hotplug=off'
 * non-hotpluggable multifunction nics
 * on non-hotpluggable slots with native hotplug (i.e. without ACPI PCI hotplug)
       PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off
       ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
     + pcie-root-port,hotplug=off | pci-bridge,shpc=off

where it doesn't work (and never will):
 * on hotplugged ports/bridges
 * on hotpluggable ports/bridges with native hotplug

1-12/34:  fixes for bugs or odd behavior
14-24/34: non-hotplug/multifunction acpi-index enabling
29-34/34: cleanups 
all of that is peppered by extra acpi tests or extensions to existing ones

Somewhat tested with RHEL9.0 and WS2022.

What's in queue:
 * PXB support 
 * microvm and arm/virt support
all of above only for non-hotpluggable slots as I don't really want to
pull there complicated APCI PCI hotplug.

gitlab tree: https://gitlab.com/imammedo/qemu/-/tree/acpi_index_non_hotplug_v2

Igor Mammedov (34):
  Revert "tests/qtest: Check for devices in bios-tables-test"
  tests: acpi: whitelist new q35.noacpihp test and pc.hpbrroot
  tests: acpi: add test_acpi_q35_tcg_no_acpi_hotplug test and extend
    test_acpi_piix4_no_acpi_pci_hotplug
  tests: acpi: update expected blobs
  tests: acpi: whitelist q35/DSDT.multi-bridge before extending testcase
  tests: acpi: extend multi-bridge case with case
    'root-port,id=HOHP,hotplug=off root-port,bus=NOHP'
  x86: pcihp: fix missing PCNT callchain when intermediate root-port has
    'hotplug=off' set
  tests: acpi: whitelist pc/DSDT.hpbrroot and pc/DSDT.hpbridge tests
  x86: pcihp: fix missing bridge AML when intermediate root-port has
    'hotplug=off' set
  tests: acpi: update expected blobs
  pcihp: piix4: do not redirect hotplug controller to piix4 when ACPI
    hotplug is disabled
  pci: fix 'hotplugglable' property behavior
  tests: acpi: whitelist DSDT blobs before isolating PCI _DSM func 0
    prolog
  pcihp: move PCI _DSM function 0 prolog into separate function
  tests: acpi: update expected blobs
  tests: acpi: whitelist DSDT before adding EDSM method
  acpi: pci: add EDSM method to DSDT
  tests: acpi: update expected blobs
  tests: acpi: whitelist DSDT before adding device with acpi-index to
    testcases
  tests: acpi: add device with acpi-index on non-hotpluggble bus
  acpi: pci: support acpi-index for non-hotpluggable devices
  tests: acpi: update expected blobs
  tests: acpi: whitelist DSDT before exposing non zero functions
  acpi: pci: describe all functions on populated slots
  tests: acpi: update expected blobs
  tests: acpi: whitelist DSDT before adding non-0 function device with
    acpi-index to testcases
  tests: acpi: add non zero function device with acpi-index on
    non-hotpluggble bus
  tests: acpi: update expected blobs
  pci: move acpi-index uniqueness check to generic PCI device code
  acpi: pci: drop BSEL usage when deciding that device isn't
    hotpluggable
  acpi: pci: move BSEL into build_append_pcihp_slots()
  acpi: pci: move out ACPI PCI hotplug generator from generic slot
    generator build_append_pci_bus_devices()
  pcihp: move fields enabling hotplug into AcpiPciHpState
  pcihp: add ACPI PCI hotplug specific is_hotpluggable_bus() callback

 include/hw/acpi/ich9.h                        |   1 +
 include/hw/acpi/pcihp.h                       |  11 +-
 include/hw/acpi/piix4.h                       |   2 -
 include/hw/hotplug.h                          |   2 +
 include/hw/qdev-core.h                        |  13 +-
 hw/acpi/acpi-pci-hotplug-stub.c               |   9 +-
 hw/acpi/ich9.c                                |  21 +-
 hw/acpi/pci-bridge.c                          |  14 +-
 hw/acpi/pcihp.c                               | 112 +++--------
 hw/acpi/piix4.c                               |  33 ++--
 hw/i386/acpi-build.c                          | 179 +++++++++++++-----
 hw/isa/lpc_ich9.c                             |   1 +
 hw/pci/pci.c                                  |  57 ++++++
 hw/pci/pcie_port.c                            |   8 +
 tests/data/acpi/pc/DSDT                       | Bin 6360 -> 6488 bytes
 tests/data/acpi/pc/DSDT.acpierst              | Bin 6283 -> 6411 bytes
 tests/data/acpi/pc/DSDT.acpihmat              | Bin 7685 -> 7813 bytes
 tests/data/acpi/pc/DSDT.bridge                | Bin 12487 -> 12615 bytes
 tests/data/acpi/pc/DSDT.cphp                  | Bin 6824 -> 6952 bytes
 tests/data/acpi/pc/DSDT.dimmpxm               | Bin 8014 -> 8142 bytes
 tests/data/acpi/pc/DSDT.hpbridge              | Bin 6289 -> 6451 bytes
 tests/data/acpi/pc/DSDT.hpbrroot              | Bin 3081 -> 3343 bytes
 tests/data/acpi/pc/DSDT.ipmikcs               | Bin 6432 -> 6560 bytes
 tests/data/acpi/pc/DSDT.memhp                 | Bin 7719 -> 7847 bytes
 tests/data/acpi/pc/DSDT.nohpet                | Bin 6218 -> 6346 bytes
 tests/data/acpi/pc/DSDT.numamem               | Bin 6366 -> 6494 bytes
 tests/data/acpi/pc/DSDT.roothp                | Bin 9745 -> 9873 bytes
 tests/data/acpi/q35/DSDT                      | Bin 8252 -> 8361 bytes
 tests/data/acpi/q35/DSDT.acpierst             | Bin 8269 -> 8378 bytes
 tests/data/acpi/q35/DSDT.acpihmat             | Bin 9577 -> 9686 bytes
 tests/data/acpi/q35/DSDT.acpihmat-noinitiator | Bin 8531 -> 8640 bytes
 tests/data/acpi/q35/DSDT.applesmc             | Bin 8298 -> 8407 bytes
 tests/data/acpi/q35/DSDT.bridge               | Bin 11481 -> 11590 bytes
 tests/data/acpi/q35/DSDT.core-count2          | Bin 32392 -> 32501 bytes
 tests/data/acpi/q35/DSDT.cphp                 | Bin 8716 -> 8825 bytes
 tests/data/acpi/q35/DSDT.cxl                  | Bin 9564 -> 9673 bytes
 tests/data/acpi/q35/DSDT.dimmpxm              | Bin 9906 -> 10015 bytes
 tests/data/acpi/q35/DSDT.ipmibt               | Bin 8327 -> 8436 bytes
 tests/data/acpi/q35/DSDT.ipmismbus            | Bin 8340 -> 8449 bytes
 tests/data/acpi/q35/DSDT.ivrs                 | Bin 8269 -> 8378 bytes
 tests/data/acpi/q35/DSDT.memhp                | Bin 9611 -> 9720 bytes
 tests/data/acpi/q35/DSDT.mmio64               | Bin 9382 -> 9491 bytes
 tests/data/acpi/q35/DSDT.multi-bridge         | Bin 12337 -> 12770 bytes
 tests/data/acpi/q35/DSDT.noacpihp             | Bin 0 -> 8248 bytes
 tests/data/acpi/q35/DSDT.nohpet               | Bin 8110 -> 8219 bytes
 tests/data/acpi/q35/DSDT.numamem              | Bin 8258 -> 8367 bytes
 tests/data/acpi/q35/DSDT.pvpanic-isa          | Bin 8353 -> 8462 bytes
 tests/data/acpi/q35/DSDT.tis.tpm12            | Bin 8858 -> 8967 bytes
 tests/data/acpi/q35/DSDT.tis.tpm2             | Bin 8884 -> 8993 bytes
 tests/data/acpi/q35/DSDT.viot                 | Bin 9361 -> 9470 bytes
 tests/data/acpi/q35/DSDT.xapic                | Bin 35615 -> 35724 bytes
 tests/qtest/bios-tables-test.c                | 125 +++++-------
 52 files changed, 345 insertions(+), 243 deletions(-)
 create mode 100644 tests/data/acpi/q35/DSDT.noacpihp

-- 
2.39.1



^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2023-03-02 16:47 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-02 16:15 [PATCH v2 00/34] pci(pc/q35): acpi-index support on non-hotpluggable slots Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 01/34] Revert "tests/qtest: Check for devices in bios-tables-test" Igor Mammedov
2023-03-02 16:46   ` Fabiano Rosas
2023-03-02 16:15 ` [PATCH v2 02/34] tests: acpi: whitelist new q35.noacpihp test and pc.hpbrroot Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 03/34] tests: acpi: add test_acpi_q35_tcg_no_acpi_hotplug test and extend test_acpi_piix4_no_acpi_pci_hotplug Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 04/34] tests: acpi: update expected blobs Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 05/34] tests: acpi: whitelist q35/DSDT.multi-bridge before extending testcase Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 06/34] tests: acpi: extend multi-bridge case with case 'root-port, id=HOHP, hotplug=off root-port, bus=NOHP' Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 07/34] x86: pcihp: fix missing PCNT callchain when intermediate root-port has 'hotplug=off' set Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 08/34] tests: acpi: whitelist pc/DSDT.hpbrroot and pc/DSDT.hpbridge tests Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 09/34] x86: pcihp: fix missing bridge AML when intermediate root-port has 'hotplug=off' set Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 10/34] tests: acpi: update expected blobs Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 11/34] pcihp: piix4: do not redirect hotplug controller to piix4 when ACPI hotplug is disabled Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 12/34] pci: fix 'hotplugglable' property behavior Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 13/34] tests: acpi: whitelist DSDT blobs before isolating PCI _DSM func 0 prolog Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 14/34] pcihp: move PCI _DSM function 0 prolog into separate function Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 15/34] tests: acpi: update expected blobs Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 16/34] tests: acpi: whitelist DSDT before adding EDSM method Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 17/34] acpi: pci: add EDSM method to DSDT Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 18/34] tests: acpi: update expected blobs Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 19/34] tests: acpi: whitelist DSDT before adding device with acpi-index to testcases Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 20/34] tests: acpi: add device with acpi-index on non-hotpluggble bus Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 21/34] acpi: pci: support acpi-index for non-hotpluggable devices Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 22/34] tests: acpi: update expected blobs Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 23/34] tests: acpi: whitelist DSDT before exposing non zero functions Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 24/34] acpi: pci: describe all functions on populated slots Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 25/34] tests: acpi: update expected blobs Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 26/34] tests: acpi: whitelist DSDT before adding non-0 function device with acpi-index to testcases Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 27/34] tests: acpi: add non zero function device with acpi-index on non-hotpluggble bus Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 28/34] tests: acpi: update expected blobs Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 29/34] pci: move acpi-index uniqueness check to generic PCI device code Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 30/34] acpi: pci: drop BSEL usage when deciding that device isn't hotpluggable Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 31/34] acpi: pci: move BSEL into build_append_pcihp_slots() Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 32/34] acpi: pci: move out ACPI PCI hotplug generator from generic slot generator build_append_pci_bus_devices() Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 33/34] pcihp: move fields enabling hotplug into AcpiPciHpState Igor Mammedov
2023-03-02 16:15 ` [PATCH v2 34/34] pcihp: add ACPI PCI hotplug specific is_hotpluggable_bus() callback Igor Mammedov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.