qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH-for-4.2 v7 10/10] tests: Update DSDT ACPI table


From: Shameerali Kolothum Thodi
Subject: Re: [Qemu-devel] [PATCH-for-4.2 v7 10/10] tests: Update DSDT ACPI table for arm/virt board with PCDIMM related changes
Date: Mon, 22 Jul 2019 14:51:59 +0000

Hi Igor,

> -----Original Message-----
> From: Qemu-devel
> [mailto:qemu-devel-bounces+shameerali.kolothum.thodi=huawei.com@nongn
> u.org] On Behalf Of Igor Mammedov
> Sent: 18 July 2019 14:13
> To: Shameerali Kolothum Thodi <address@hidden>
> Cc: address@hidden; address@hidden;
> address@hidden; address@hidden;
> address@hidden; xuwei (O) <address@hidden>; Linuxarm
> <address@hidden>; address@hidden; address@hidden;
> address@hidden; address@hidden
> Subject: Re: [Qemu-devel] [PATCH-for-4.2 v7 10/10] tests: Update DSDT ACPI
> table for arm/virt board with PCDIMM related changes
> 
> On Tue, 16 Jul 2019 16:38:16 +0100
> Shameer Kolothum <address@hidden> wrote:
> 
> > From: Eric Auger <address@hidden>
> >
> > PCDIMM hotplug addition updated the DSDT. Update the reference table.
> 
> it's not correct process. series should be merged through Michael's pci branch
> and see
> commit ab50f22309a17c772c51931940596e707c200739 (mst/pci)
> Author: Michael S. Tsirkin <address@hidden>
> Date:   Tue May 21 17:38:47 2019 -0400
> 
>     bios-tables-test: add diff allowed list
> 
> how to request table update.

Ok. Just to confirm, this means I can probably add the below diff to patch #6 
and
remove this patch(10/10) from the series. 

diff --git a/tests/bios-tables-test-allowed-diff.h 
b/tests/bios-tables-test-allowed-diff.h
index dfb8523c8b..7b4adbc822 100644
--- a/tests/bios-tables-test-allowed-diff.h
+++ b/tests/bios-tables-test-allowed-diff.h
@@ -1 +1,2 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/virt/DSDT",

> 
> Another thing:
> bios-tables-test has test_acpi_tcg_dimm_pxm() test case,
> pls make use of it to test arm/virt variant

I had a go with this, but has found an issue with this.

This is what I added in order to run the dimm_pxm test.

- - 8- -

diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
index a356ac3489..79af4f4874 100644
--- a/tests/bios-tables-test.c
+++ b/tests/bios-tables-test.c
@@ -871,6 +871,36 @@ static void test_acpi_piix4_tcg_dimm_pxm(void)
     test_acpi_tcg_dimm_pxm(MACHINE_PC);
 }
 
+static void test_acpi_virt_tcg_dimm_pxm(void)
+{
+    test_data data = {
+        .machine = "virt",
+        .accel = "tcg",
+        .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
+        .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
+        .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
+        .ram_start = 0x40000000ULL,
+        .scan_len = 128ULL * 1024 * 1024,
+    };
+
+    data.variant = ".dimmpxm";
+    test_acpi_one(" -cpu cortex-a57"
+                  " -smp 4"
+                  " -m 512M,slots=3,maxmem=2G"
+                  " -object memory-backend-ram,id=ram0,size=128M"
+                  " -object memory-backend-ram,id=ram1,size=128M"
+                  " -object memory-backend-ram,id=ram2,size=128M"
+                  " -object memory-backend-ram,id=ram3,size=128M"
+                  " -numa node,memdev=ram0,nodeid=0"
+                  " -numa node,memdev=ram1,nodeid=1"
+                  " -numa node,memdev=ram2,nodeid=2"
+                  " -numa node,memdev=ram3,nodeid=3"
+                  " -object memory-backend-ram,id=ram4,size=1G"
+                  " -device pc-dimm,id=dimm0,memdev=ram4,node=0",
+                  &data);
+    free_test_data(&data);
+}
+
 static void test_acpi_virt_tcg(void)
 {
     test_data data = {
@@ -917,6 +947,7 @@ int main(int argc, char *argv[])
         qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
     } else if (strcmp(arch, "aarch64") == 0) {
         qtest_add_func("acpi/virt", test_acpi_virt_tcg);
+        qtest_add_func("acpi/virt/dimmpxm", test_acpi_virt_tcg_dimm_pxm);
     }
     ret = g_test_run();
     boot_sector_cleanup(disk);

- - 8- -

Then used the script to generate the acpi tables and "make check" runs fine.

But when I changed the memory configuration to,

test_acpi_one(" -cpu cortex-a57"
            " -smp 4"
            " -m 256M,slots=3,maxmem=2G"
            " -object memory-backend-ram,id=ram0,size=64M"
            " -object memory-backend-ram,id=ram1,size=64M"
            " -object memory-backend-ram,id=ram2,size=64M"
            " -object memory-backend-ram,id=ram3,size=64M"
            " -numa node,memdev=ram0,nodeid=0"
            " -numa node,memdev=ram1,nodeid=1"
            " -numa node,memdev=ram2,nodeid=2"
            " -numa node,memdev=ram3,nodeid=3"
            " -object memory-backend-ram,id=ram4,size=1G"
            " -device pc-dimm,id=dimm0,memdev=ram4,node=0",
            &data);

"make check" gets stuck at,

  CC      tests/bios-tables-test.o
  LINK    tests/bios-tables-test
  TEST    check-qtest-aarch64: tests/numa-test
  TEST    check-qtest-aarch64: tests/boot-serial-test
  TEST    check-qtest-aarch64: tests/migration-test
  TEST    check-qtest-aarch64: tests/bios-tables-test -->stuck here.

But if I use the same memory configuration and run the qemu guest independently
it boots fine.

./qemu-system-aarch64 -machine virt,accel=tcg \
-cpu cortex-a57 \
-nographic -smp 4 \
-bios QEMU_EFI_Release.fd \
-kernel Image_5.2rc2 \
-drive if=none,file=ubuntu-est-5.0,id=fs \
-device virtio-blk-device,drive=fs \
-m 256M,slots=3,maxmem=2G \
-object memory-backend-ram,id=ram0,size=64M \
-object memory-backend-ram,id=ram1,size=64M \
-object memory-backend-ram,id=ram2,size=64M \
-object memory-backend-ram,id=ram3,size=64M \
-numa node,memdev=ram0,nodeid=0 \
-numa node,memdev=ram1,nodeid=1 \
-numa node,memdev=ram2,nodeid=2 \
-numa node,memdev=ram3,nodeid=3 \
-object memory-backend-ram,id=ram4,size=1G \
-device pc-dimm,id=dimm1,memdev=ram4,node=0 \
-append "console=ttyAMA0 root=/dev/vda rw acpi=force"
 
root@ubuntu:~# numactl -H
available: 4 nodes (0-3)
node 0 cpus: 0
node 0 size: 1067 MB
node 0 free: 1015 MB
node 1 cpus: 1
node 1 size: 44 MB
node 1 free: 5 MB
node 2 cpus: 2
node 2 size: 63 MB
node 2 free: 24 MB
node 3 cpus: 3
node 3 size: 63 MB
node 3 free: 31 MB
node distances:
node   0   1   2   3 
  0:  10  20  20  20 
  1:  20  10  20  20 
  2:  20  20  10  20 
  3:  20  20  20  10 
root@ubuntu:~#

I am not sure why "make check" hangs with 64M size!. 
Please take a look and let me know if I missed anything obvious here.

Thanks,
Shameer



reply via email to

[Prev in Thread] Current Thread [Next in Thread]