Hi Igor and Eric,

On 5/30/25 08:51, Igor Mammedov wrote:
On Wed, 28 May 2025 12:04:26 -0300
Gustavo Romero <gustavo.rom...@linaro.org> wrote:

Hi Igor,

On 5/28/25 10:02, Igor Mammedov wrote:
On Wed, 28 May 2025 09:41:15 -0300
Gustavo Romero <gustavo.rom...@linaro.org> wrote:
Hi Igor,

On 5/28/25 06:38, Igor Mammedov wrote:
On Tue, 27 May 2025 09:40:26 +0200
Eric Auger <eric.au...@redhat.com> wrote:
From: Gustavo Romero <gustavo.rom...@linaro.org>

ACPI PCI hotplug is now turned on by default so we need to change the
existing tests to keep it off. However, even setting the ACPI PCI
hotplug off in the existing tests, there will be changes in the ACPI
tables because the _OSC method was modified, hence in the next patch of
this series the blobs are updated accordingly.

Signed-off-by: Gustavo Romero <gustavo.rom...@linaro.org>
Signed-off-by: Eric Auger <eric.au...@redhat.com>

it would be better to test whatever default we end up with.
(like x86)

hmm maybe there is a confusion here, Igor. We are actually planning what you

perhaps, see my reply to Eric about my expectations wrt tests.

Yip, I read it before my reply here.


(i.e. default tests shouldn't have any explicit CLI options,
instead it should follow whitelist blobs/set new default patch/update blobs 
pattern)

I see. I agree with that. But this patch is not about the new test. The new 
test is
_not_ in this series. Patches 8/25, 10/25, and 24/25 are _not_ about the new 
test but
about adapting the _legacy tests_ (native acpi) to the situation when ACPI HP 
becomes
the default, because this series makes acpi-pcihp=on the default, hence the CLI 
option
"acpi-pcihp=off" added to them. An update to the blobs are also necessary 
because of the
change in _OSC method, even when acpi-pcihp=off.


said. This patch and the other two in this series related to the 
bios-tables-test
(i.e., patches 8/25 and 10/25) are for actually making the current (legacy) 
test pass,
since the new default as per this series will be acpi-pcihp=on. That's why here 
we're
adapting the current test here to have acpi-pcihp=off.

The new test that will test for acpi-pcihp=on (the new default) is not in this 
series
and we decided to merge it separate. It's in the patch 4/5 and 5/5 of the 
follow series:

We're doing the "blobs/set new default patch/update blobs pattern" in the new 
test, which
we can merge later, once this series is merged, no? The step "set new default" 
then will
not be necessary because the new test will be merged separate, after this 
series, so when
acpi-pcihp=on is already the default.

Please note that although we're using acpi-pcihp=on in the new test, it's not 
necessary,
we can dropped this option, making it implicit as you say, and it will work. 
This is the
new test:

https://mail.gnu.org/archive/html/qemu-devel/2025-05/msg05828.html 4/5
https://mail.gnu.org/archive/html/qemu-devel/2025-05/msg05827.html 5/5


Thus, there are to "acts" of modifying the bios-tables-test:

1) Adapt the current tests to when acpi-pcihp=on becomes the default (hence the 
addition
     to them of "acpi-pcihp=off".


that's what I disagree with.

1) Instead adapting majority of tests to legacy before switching defaults,
just do whitelist/modify default/update so all of tests run with new default.

and then

There is also the need to update the blobs, but it's because
     of the _OSC method change in DSDT table, which will change anyways, even with 
"acpi-pcihp=off¨,
     hence the need for patch 10/25 in this series. This is _done is this 
series_.


2) Add a new test for testing the default (i.e. acpi-pcihp-on). It follows what 
you're
     saying above: "follow whitelist blobs/set new default patch/update blobs 
pattern",
     because we can drop the acpi-pcihp-on option from the CLI in this test 
without any
     prejudice to test. While the step "set new default patch" was actually 
done in 1).

2) add a separate test case for native pcie hoplug (preferably within this 
series)

3) even better would be to add #2 before #1 (right after 10/25),
this way will guarantee that old native hotplug tables stay
the same regardless of followup patches that add ACPI pcihp aml.

Got it now, hopefully... :)

OK, I'm trying to follow what you recommended in 3). I've pushed a series to:

https://github.com/gromero/qemu/commits/v2_20250527_eric_auger_redhat_com/

So, I understand we will need to add/update the blobs at three times,
2 times because of the changes in the DSDT generation (_OSC changes and when
acpi-pci=on) and an additional one because of the new PCIe native hotplug test.

I dropped this patch (Patch 24/25) from the series.

So the overview of the organization would be the following:


3c302f7222 tests/qtest/bios-tables-test: Update DSDT blobs                      
             #1c (update blob)    \
671f15f470 hw/arm/virt: Use ACPI PCI hotplug by default                         
             #1b (modify default) |--- acpi-pcihp=on
9468f730e1 tests/qtest/bios-tables-test: Prepare for changes in the DSDT table  
             #1a (whitelist)      /
c9ec0e0226 hw/arm/virt: Plug pcihp hotplug/hotunplug callbacks
dc44749a34 hw/arm/virt: Let virt support pci hotplug/unplug GED event
f667079260 hw/core/sysbus: Introduce sysbus_mmio_map_name() helper
46731e563b hw/acpi/ged: Support migration of AcpiPciHpState
4fa7b0e0f6 hw/acpi/ged: Call pcihp plug callbacks in hotplug handler 
implementation
587b001876 hw/acpi/ged: Prepare the device to react to PCI hotplug events
b55183d128 hw/arm/virt-acpi-build: Modify the DSDT ACPI table to enable ACPI 
PCI hotplug
fe4c96b384 hw/i386/acpi-build: Move aml_pci_edsm to a generic place
010c50dbc7 hw/i386/acpi-build: Introduce and use acpi_get_pci_host
5a1be727e6 hw/i386/acpi-build: Move build_append_pci_bus_devices/pcihp_slots to 
pcihp
14a172e192 hw/i386/acpi-build: Move build_append_notification_callback to pcihp
5110ae8874 hw/acpi/pcihp: Add an AmlRegionSpace arg to build_acpi_pci_hotplug
82c2aef672 hw/i386/acpi-build: Introduce build_append_pcihp_resources() helper
6372fe7eef qtest/bios-tables-test: Update DSDT 'noacpipcihp' variant blob       
             #2 (blob update for test), part 2 of 2 (update blob)  ]--- New 
PCIe native test
6fb29ba18d tests/qtest/bios-tables-test: Add aarch64 PCIe native hotplug test   
             #2 (pcie native hp test), part 1 of 2 (whitelist)     /
12c63a505e tests/qtest/bios-tables-test: Update DSDT blobs after GPEX _OSC 
change            Patch 10/25 in this series (update blob)    \
779bd47749 hw/pci-host/gpex-acpi: Use build_pci_host_bridge_osc_method          
             Patch  9/25 in this series (modify default) |--- _OSC change
f260fd59c1 tests/qtest/bios-tables-test: Prepare for changes in the DSDT table  
             Patch  8/25 in this series (whitelist)      /
b000677fd9 hw/i386/acpi-build: Turn build_q35_osc_method into a generic method
a72f87b634 hw/pci-host/gpex-acpi: Propagate hotplug type info from virt machine 
downto gpex
77a87b6ba3 hw/pci-host/gpex-acpi: Split host bridge OSC and DSM generation
67e4dc2e7b hw/pci-host/gpex-acpi: Add native_pci_hotplug arg to 
acpi_dsdt_add_pci_osc
b89e69da54 hw/acpi: Rename and move build_x86_acpi_pci_hotplug to pcihp
74f1080a74 hw/arm/virt: Introduce machine state acpi pcihp flags and props
1048082f33 hw/i386/acpi-build: Make aml_pci_device_dsm() static

See notes on the right for when the blobs are updated or added in the
series. The new test for PCIe native hotplug (I prefer not calling it legacy,
since it's not really legacy; it's just an alternative better in some scenarios,
specially in virtualization) is now in the series (#2), "right after 10/25".

Is something like that that you want?


Cheers,
Gustavo


Cheers,
Gustavo

https://mail.gnu.org/archive/html/qemu-devel/2025-05/msg05828.html 4/5
https://mail.gnu.org/archive/html/qemu-devel/2025-05/msg05827.html 5/5


Cheers,
Gustavo

---

[Eric] also added acpi-pcihp=off to test_acpi_aarch64_virt_tcg_numamem
---
    tests/qtest/bios-tables-test.c | 13 +++++++++----
    1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 0a333ec435..6379dba714 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1626,7 +1626,7 @@ static void test_acpi_aarch64_virt_tcg_memhp(void)
        };
data.variant = ".memhp";
-    test_acpi_one(" -machine nvdimm=on"
+    test_acpi_one(" -machine nvdimm=on,acpi-pcihp=off"
                      " -cpu cortex-a57"
                      " -m 256M,slots=3,maxmem=1G"
                      " -object memory-backend-ram,id=ram0,size=128M"
@@ -1747,7 +1747,8 @@ static void test_acpi_aarch64_virt_tcg_numamem(void)
        };
data.variant = ".numamem";
-    test_acpi_one(" -cpu cortex-a57"
+    test_acpi_one(" -machine acpi-pcihp=off"
+                  " -cpu cortex-a57"
                      " -object memory-backend-ram,id=ram0,size=128M"
                      " -numa node,memdev=ram0",
                      &data);
@@ -1775,7 +1776,8 @@ static void test_acpi_aarch64_virt_tcg_pxb(void)
         * to solve the conflicts.
         */
        data.variant = ".pxb";
-    test_acpi_one(" -device pcie-root-port,chassis=1,id=pci.1"
+    test_acpi_one(" -machine acpi-pcihp=off"
+                  " -device pcie-root-port,chassis=1,id=pci.1"
                      " -device virtio-scsi-pci,id=scsi0,bus=pci.1"
                      " -drive file="
                      
"tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2,"
@@ -1846,7 +1848,7 @@ static void test_acpi_aarch64_virt_tcg_acpi_hmat(void)
data.variant = ".acpihmatvirt"; - test_acpi_one(" -machine hmat=on"
+    test_acpi_one(" -machine hmat=on,acpi-pcihp=off"
                      " -cpu cortex-a57"
                      " -smp 4,sockets=2"
                      " -m 384M"
@@ -2123,6 +2125,7 @@ static void test_acpi_aarch64_virt_tcg(void)
        data.smbios_cpu_max_speed = 2900;
        data.smbios_cpu_curr_speed = 2700;
        test_acpi_one("-cpu cortex-a57 "
+                  "-machine acpi-pcihp=off "
                      "-smbios type=4,max-speed=2900,current-speed=2700", 
&data);
        free_test_data(&data);
    }
@@ -2142,6 +2145,7 @@ static void test_acpi_aarch64_virt_tcg_topology(void)
        };
test_acpi_one("-cpu cortex-a57 "
+                  "-machine acpi-pcihp=off "
                      "-smp sockets=1,clusters=2,cores=2,threads=2", &data);
        free_test_data(&data);
    }
@@ -2227,6 +2231,7 @@ static void test_acpi_aarch64_virt_viot(void)
        };
test_acpi_one("-cpu cortex-a57 "
+                  "-machine acpi-pcihp=off "
                      "-device virtio-iommu-pci", &data);
        free_test_data(&data);
    }




Reply via email to