From: Eric Auger <eric.auger@redhat.com>
To: Gustavo Romero <gustavo.romero@linaro.org>,
eric.auger.pro@gmail.com, qemu-devel@nongnu.org,
qemu-arm@nongnu.org, peter.maydell@linaro.org,
imammedo@redhat.com, anisinha@redhat.com, mst@redhat.com,
shannon.zhaosl@gmail.com
Cc: pbonzini@redhat.com, Jonathan.Cameron@huawei.com, philmd@linaro.org
Subject: Re: [PATCH 00/22] ACPI PCI Hotplug support on ARM
Date: Mon, 26 May 2025 12:21:06 +0200 [thread overview]
Message-ID: <2fe04c2b-d631-4ea5-9703-d44e50e13016@redhat.com> (raw)
In-Reply-To: <6b7b0e20-546b-4b72-9489-4468fafb76ba@linaro.org>
Hi Gustavo,
On 5/26/25 7:55 AM, Gustavo Romero wrote:
> Hi Eric,
>
> On 5/14/25 14:00, Eric Auger wrote:
>> This series enables ACPI PCI hotplug/hotunplug on ARM
>> and makes it default for 10.1 machine type. This aligns with
>> x86 q35 machine. Expected benefits should be similar to
>> those listed in [1].
>>
>> It is still possible to disable it using a virt machine
>> option: virt,acpi-pcihp=off and restore the legacy behavior.
>>
>> The infrastructure used in x86 is heavily reused and a
>> huge part of the series consists in moving code from
>> hw/i386/acpi-build.c to a generic place and slightly
>> adapting it to make it usable on ARM. The DSDT table is
>> augmented to support ACPI PCI hotplug elements.
>>
>> On ARM we use use a GED event to notify the OS about
>> hotplug events.
>>
>> I have not noticed any tests/qtest/bios-tables-test failures
>> neither on x86 nor ARM. x86 DSDT table has not changed.
>> ARM DSDT table definitively has but there are no tests
>> impacted. ARM misses hotplug tests that do exist on x86. This
>> most probably should be considered in the future.
>
> I've just posted a v1 for a acpi-pcihp=on test:
>
> https://mail.gnu.org/archive/html/qemu-devel/2025-05/msg05824.html
>
> The odd thing is that I noticed failures in the existing aarch64
> acpi tests in tests/qtest/bios-tables-test. At least the rename
> of the variable 'CTRL' to 'Local0' in the _OSC method should cause
> a mismatch against the current base DSDT? So I had to handle it
> via patches 1/5, 2/5, and 3/5. The diff is in the 3/5 commit body.
Thank you for contributing those tests.
Hum I think my mistake was to have executed the existing tests in KVM
acceleration mode only using
QTEST_QEMU_BINARY=qemu-system-aarch64 tests/qtest/bios-tables-test
direct execution.
The failing tests belong to the TCG category I think.
I will review your tests and if you allow me I may need to include
patches 1 and 3 in my series to prevent existing tests from failing, of
course with all your credits.
Thank you again for reporting the issue!
Eric
>
> Cheers,
> Gustavo
>
>> Best Regards
>>
>> Eric
>>
>> This series can be found at:
>> https://github.com/eauger/qemu/tree/arm-acpi-pcihp-v1
>>
>> previous RFC:
>> https://github.com/eauger/qemu/tree/arm-acpi-pcihp-rfc
>>
>> History:
>> RFC -> v1:
>> - First 3 trivial patches were pulled separately
>> - Fix of the register region size (0x18), ie. ACPI_PCIHP_SIZE
>> - addition of aml_pci_edsm which was not called in RFC
>> - acpi-index feature is now fixed. vms->bus was not set on
>> acpi_pcihp_init. The init sequence is still hacky though. Suggestions
>> appreciated.
>>
>> [1] [PATCH v6 0/6] Use ACPI PCI hot-plug for Q35
>> https://lore.kernel.org/all/20210713004205.775386-1-jusual@redhat.com/
>>
>>
>> Eric Auger (22):
>> hw/i386/acpi-build: Make aml_pci_device_dsm() static
>> hw/arm/virt: Introduce machine state acpi pcihp flags and props
>> hw/acpi: Rename and move build_x86_acpi_pci_hotplug to pcihp
>> hw/pci-host/gpex-acpi: Add native_pci_hotplug arg to
>> acpi_dsdt_add_pci_osc
>> hw/pci-host/gpex-acpi: Split host bridge OSC and DSM generation
>> hw/pci-host/gpex-acpi: Propagate hotplug type info from virt machine
>> downto gpex
>> hw/i386/acpi-build: Turn build_q35_osc_method into a generic method
>> hw/pci-host/gpex-acpi: Use build_pci_host_bridge_osc_method
>> hw/i386/acpi-build: Introduce build_append_pcihp_resources() helper
>> hw/acpi/pcihp: Add an AmlRegionSpace arg to build_acpi_pci_hotplug
>> hw/i386/acpi-build: Move build_append_notification_callback to pcihp
>> hw/i386/acpi-build: Move build_append_pci_bus_devices/pcihp_slots to
>> pcihp
>> hw/i386/acpi-build: Introduce and use acpi_get_pci_host
>> hw/i386/acpi-build: Move aml_pci_edsm to a generic place
>> hw/arm/virt-acpi-build: Modify the DSDT ACPI table to enable ACPI PCI
>> hotplug
>> hw/acpi/ged: Prepare the device to react to PCI hotplug events
>> hw/acpi/ged: Call pcihp plug callbacks in hotplug handler
>> implementation
>> hw/acpi/ged: Support migration of AcpiPciHpState
>> hw/core/sysbus: Introduce sysbus_mmio_map_name() helper
>> hw/arm/virt: Let virt support pci hotplug/unplug GED event
>> hw/arm/virt: Plug pcihp hotplug/hotunplug callbacks
>> hw/arm/virt: Use ACPI PCI hotplug by default
>>
>> hw/i386/acpi-build.h | 4 -
>> include/hw/acpi/aml-build.h | 2 +
>> include/hw/acpi/generic_event_device.h | 5 +
>> include/hw/acpi/pci.h | 4 +-
>> include/hw/acpi/pcihp.h | 19 +-
>> include/hw/arm/virt.h | 4 +
>> include/hw/pci-host/gpex.h | 1 +
>> include/hw/sysbus.h | 1 +
>> hw/acpi/aml-build.c | 50 +++
>> hw/acpi/generic_event_device.c | 55 +++
>> hw/acpi/pci.c | 20 +
>> hw/acpi/pcihp.c | 482 ++++++++++++++++++++-
>> hw/arm/virt-acpi-build.c | 27 ++
>> hw/arm/virt.c | 107 ++++-
>> hw/core/sysbus.c | 11 +
>> hw/i386/acpi-build.c | 552 +------------------------
>> hw/pci-host/gpex-acpi.c | 75 +---
>> hw/arm/Kconfig | 2 +
>> 18 files changed, 806 insertions(+), 615 deletions(-)
>>
>
next prev parent reply other threads:[~2025-05-26 10:21 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-14 17:00 [PATCH 00/22] ACPI PCI Hotplug support on ARM Eric Auger
2025-05-14 17:00 ` [PATCH 01/22] hw/i386/acpi-build: Make aml_pci_device_dsm() static Eric Auger
2025-05-20 12:30 ` Gustavo Romero
2025-05-25 15:29 ` Philippe Mathieu-Daudé
2025-05-14 17:00 ` [PATCH 02/22] hw/arm/virt: Introduce machine state acpi pcihp flags and props Eric Auger
2025-05-14 17:00 ` [PATCH 03/22] hw/acpi: Rename and move build_x86_acpi_pci_hotplug to pcihp Eric Auger
2025-05-20 12:31 ` Gustavo Romero
2025-05-14 17:00 ` [PATCH 04/22] hw/pci-host/gpex-acpi: Add native_pci_hotplug arg to acpi_dsdt_add_pci_osc Eric Auger
2025-05-14 17:00 ` [PATCH 05/22] hw/pci-host/gpex-acpi: Split host bridge OSC and DSM generation Eric Auger
2025-05-14 17:00 ` [PATCH 06/22] hw/pci-host/gpex-acpi: Propagate hotplug type info from virt machine downto gpex Eric Auger
2025-05-14 17:00 ` [PATCH 07/22] hw/i386/acpi-build: Turn build_q35_osc_method into a generic method Eric Auger
2025-05-20 12:59 ` Gustavo Romero
2025-05-14 17:00 ` [PATCH 08/22] hw/pci-host/gpex-acpi: Use build_pci_host_bridge_osc_method Eric Auger
2025-05-20 14:09 ` Gustavo Romero
2025-05-21 16:12 ` Eric Auger
2025-05-24 10:54 ` Michael S. Tsirkin
2025-05-26 9:16 ` Eric Auger
2025-05-14 17:00 ` [PATCH 09/22] hw/i386/acpi-build: Introduce build_append_pcihp_resources() helper Eric Auger
2025-05-20 18:57 ` Gustavo Romero
2025-05-14 17:00 ` [PATCH 10/22] hw/acpi/pcihp: Add an AmlRegionSpace arg to build_acpi_pci_hotplug Eric Auger
2025-05-20 18:58 ` Gustavo Romero
2025-05-14 17:00 ` [PATCH 11/22] hw/i386/acpi-build: Move build_append_notification_callback to pcihp Eric Auger
2025-05-20 18:58 ` Gustavo Romero
2025-05-14 17:00 ` [PATCH 12/22] hw/i386/acpi-build: Move build_append_pci_bus_devices/pcihp_slots " Eric Auger
2025-05-20 19:59 ` Gustavo Romero
2025-05-14 17:01 ` [PATCH 13/22] hw/i386/acpi-build: Introduce and use acpi_get_pci_host Eric Auger
2025-05-20 20:00 ` Gustavo Romero
2025-05-26 9:16 ` Eric Auger
2025-05-14 17:01 ` [PATCH 14/22] hw/i386/acpi-build: Move aml_pci_edsm to a generic place Eric Auger
2025-05-21 15:26 ` Gustavo Romero
2025-05-21 15:56 ` Eric Auger
2025-05-21 16:24 ` Gustavo Romero
2025-05-21 20:19 ` Gustavo Romero
2025-05-27 7:18 ` Eric Auger
2025-05-27 19:34 ` Gustavo Romero
2025-05-14 17:01 ` [PATCH 15/22] hw/arm/virt-acpi-build: Modify the DSDT ACPI table to enable ACPI PCI hotplug Eric Auger
2025-05-14 17:01 ` [PATCH 16/22] hw/acpi/ged: Prepare the device to react to PCI hotplug events Eric Auger
2025-05-25 15:34 ` Philippe Mathieu-Daudé
2025-05-14 17:01 ` [PATCH 17/22] hw/acpi/ged: Call pcihp plug callbacks in hotplug handler implementation Eric Auger
2025-05-14 17:01 ` [PATCH 18/22] hw/acpi/ged: Support migration of AcpiPciHpState Eric Auger
2025-05-14 17:01 ` [PATCH 19/22] hw/core/sysbus: Introduce sysbus_mmio_map_name() helper Eric Auger
2025-05-14 17:01 ` [PATCH 20/22] hw/arm/virt: Let virt support pci hotplug/unplug GED event Eric Auger
2025-05-14 17:01 ` [PATCH 21/22] hw/arm/virt: Plug pcihp hotplug/hotunplug callbacks Eric Auger
2025-05-14 17:01 ` [PATCH 22/22] hw/arm/virt: Use ACPI PCI hotplug by default Eric Auger
2025-05-26 5:55 ` [PATCH 00/22] ACPI PCI Hotplug support on ARM Gustavo Romero
2025-05-26 10:21 ` Eric Auger [this message]
2025-05-26 13:56 ` Gustavo Romero
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=2fe04c2b-d631-4ea5-9703-d44e50e13016@redhat.com \
--to=eric.auger@redhat.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=anisinha@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=gustavo.romero@linaro.org \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shannon.zhaosl@gmail.com \
/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).