mbox series

[PATCH-for-4.2,v7,00/10] ARM virt: ACPI memory hotplug support

Message ID 20190716153816.17676-1-shameerali.kolothum.thodi@huawei.com (mailing list archive)
Headers show
Series ARM virt: ACPI memory hotplug support | expand

Message

Shameerali Kolothum Thodi July 16, 2019, 3:38 p.m. UTC
This series is an attempt to provide device memory hotplug support 
on ARM virt platform. This is based on Eric's recent works here[1]
and carries some of the pc-dimm related patches dropped from his
series.

The kernel support for arm64 memory hot add was added recently by
Robin and hence the guest kernel should be => 5.0-rc1.

NVDIM support is not included currently as we still have an unresolved
issue while hot adding NVDIMM[2]. However NVDIMM cold plug patches
can be included, but not done for now, for keeping it simple.

This makes use of GED device to sent hotplug ACPI events to the
Guest. GED code is based on Nemu. Thanks to the efforts of Samuel and
Sebastien to add the hardware-reduced support to Nemu using GED
device[3]. (Please shout if I got the author/signed-off wrong for
those patches or missed any names).

This is sanity tested on a HiSilicon ARM64 platform and appreciate
any further testing.

Thanks,
Shameer

[1] https://patchwork.kernel.org/cover/10837565/
[2] https://patchwork.kernel.org/cover/10783589/
[3] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/ged.c
[4] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-May/651763.html

v6 --> v7
- Added 4.2 machine support and restricted GED creation for < 4.2
  This is to address the migration test fail reported by Eric.
- Included "tests: Update DSDT ACPI table.." patch(#10) from Eric
  to fix the "make check" bios-tables-test failure.
  
v5 --> v6

-Addressed comments from Eric.
-Added R-by from Eric and Igor.

v4 --> v5
-Removed gsi/ged-irq routing in virt.
-Added Migration support.
-Dropped support for DT coldplug case based on the discussions
 here[4]
-Added system_powerdown support through GED.

v3 --> v4
Addressed comments from Igor and Eric,
-Renamed "virt-acpi" to "acpi-ged".
-Changed ged device parent to TYPE_DEVICE.
-Introduced DT memory node property "hotpluggable" to resolve device
 memory being treated as early boot memory issue(patch #7).
-Combined patches #3 and #9 from v3 into #3.

v2 --> v3

Addressed comments from Igor and Eric,
-Made virt acpi device platform independent and moved
 to hw/acpi/generic_event_device.c
-Moved ged specific code into hw/acpi/generic_event_device.c
-Introduced an opt-in feature "fdt" to resolve device-memory being
 treated as early boot memory.
-Dropped patch #1 from v2.

RFC --> v2

-Use GED device instead of GPIO for ACPI hotplug events.
-Removed NVDIMM support for now.
-Includes dropped patches from Eric's v9 series.

Eric Auger (2):
  hw/arm/virt: Add memory hotplug framework
  tests: Update DSDT ACPI table for arm/virt board with PCDIMM related
    changes

Samuel Ortiz (2):
  hw/acpi: Do not create memory hotplug method when handler is not
    defined
  hw/acpi: Add ACPI Generic Event Device Support

Shameer Kolothum (6):
  hw/acpi: Make ACPI IO address space configurable
  hw/arm/virt: Add 4.2 machine type
  hw/arm/virt: Enable device memory cold/hot plug with ACPI boot
  hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
  hw/acpi: Add system power down support to GED
  hw/arm: Use GED for system_powerdown event

 hw/acpi/Kconfig                        |   4 +
 hw/acpi/Makefile.objs                  |   1 +
 hw/acpi/generic_event_device.c         | 352 +++++++++++++++++++++++++
 hw/acpi/memory_hotplug.c               |  35 +--
 hw/arm/Kconfig                         |   4 +
 hw/arm/virt-acpi-build.c               |  58 ++--
 hw/arm/virt.c                          |  99 ++++++-
 hw/core/machine.c                      |   3 +
 hw/i386/acpi-build.c                   |   3 +-
 include/hw/acpi/generic_event_device.h | 106 ++++++++
 include/hw/acpi/memory_hotplug.h       |   9 +-
 include/hw/arm/virt.h                  |   4 +
 include/hw/boards.h                    |   3 +
 tests/data/acpi/virt/DSDT              | Bin 18476 -> 18493 bytes
 14 files changed, 625 insertions(+), 56 deletions(-)
 create mode 100644 hw/acpi/generic_event_device.c
 create mode 100644 include/hw/acpi/generic_event_device.h

Comments

Shameerali Kolothum Thodi July 16, 2019, 3:38 p.m. UTC | #1
From: Eric Auger <eric.auger@redhat.com>

PCDIMM hotplug addition updated the DSDT. Update the reference table.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
 tests/data/acpi/virt/DSDT | Bin 18476 -> 18493 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/tests/data/acpi/virt/DSDT b/tests/data/acpi/virt/DSDT
index 20e85c7f89f645c69935c615c07084e221419960..1a5c3e5243c78eb25345fdf7ffa442afec3c5c28 100644
GIT binary patch
delta 172
zcmZ28fpPByMlP3Nmk?VI1_q{Y6S<_BIvO{s=eSSi^^mWRZt~=a(Tfjuig$N)iRXy-
z@O0sIbPn(|FfcS`;D`?ea)A;+mUB?BARiZZCmRDZqb36bLnT9WgKLnhI|B~`0|zG;
zOLQYQi0kYc?CPT+ViNBf7Q$Ho;v_5(n_Qj1$iNt*&kVB1*CW8$H`v*4fdEjLhl`1U
Ni>WOjJjjWw0RY`tDw+TQ

delta 134
zcmdlxfpN_QMlP3Nmk=Ef1_q{ziCof5?F}2%bKIpo*xdvC4LIUGJY9GlgM2*<49pA}
zIN}{$f+og`c`$P_2rw{ovN13+sxvS!RDxt&Jq4Ay6ndl?7@-g-A<n=c$sh-0Ff)LR
Z11c2ZjdwLLW@rlt4|3vam^{&45den68LI#Q
Igor Mammedov July 18, 2019, 1:13 p.m. UTC | #2
On Tue, 16 Jul 2019 16:38:16 +0100
Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> wrote:

> From: Eric Auger <eric.auger@redhat.com>
> 
> 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 <mst@redhat.com>
Date:   Tue May 21 17:38:47 2019 -0400

    bios-tables-test: add diff allowed list

how to request table update.


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

> 
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> ---
>  tests/data/acpi/virt/DSDT | Bin 18476 -> 18493 bytes
>  1 file changed, 0 insertions(+), 0 deletions(-)
> 
> diff --git a/tests/data/acpi/virt/DSDT b/tests/data/acpi/virt/DSDT
> index 20e85c7f89f645c69935c615c07084e221419960..1a5c3e5243c78eb25345fdf7ffa442afec3c5c28 100644
> GIT binary patch
> delta 172
> zcmZ28fpPByMlP3Nmk?VI1_q{Y6S<_BIvO{s=eSSi^^mWRZt~=a(Tfjuig$N)iRXy-
> z@O0sIbPn(|FfcS`;D`?ea)A;+mUB?BARiZZCmRDZqb36bLnT9WgKLnhI|B~`0|zG;
> zOLQYQi0kYc?CPT+ViNBf7Q$Ho;v_5(n_Qj1$iNt*&kVB1*CW8$H`v*4fdEjLhl`1U
> Ni>WOjJjjWw0RY`tDw+TQ  
> 
> delta 134
> zcmdlxfpN_QMlP3Nmk=Ef1_q{ziCof5?F}2%bKIpo*xdvC4LIUGJY9GlgM2*<49pA}
> zIN}{$f+og`c`$P_2rw{ovN13+sxvS!RDxt&Jq4Ay6ndl?7@-g-A<n=c$sh-0Ff)LR
> Z11c2ZjdwLLW@rlt4|3vam^{&45den68LI#Q
>
Shameerali Kolothum Thodi July 22, 2019, 2:51 p.m. UTC | #3
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 <shameerali.kolothum.thodi@huawei.com>
> Cc: peter.maydell@linaro.org; sameo@linux.intel.com;
> shannon.zhaosl@gmail.com; ard.biesheuvel@linaro.org;
> qemu-devel@nongnu.org; xuwei (O) <xuwei5@huawei.com>; Linuxarm
> <linuxarm@huawei.com>; eric.auger@redhat.com; qemu-arm@nongnu.org;
> sebastien.boeuf@intel.com; lersek@redhat.com
> 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 <shameerali.kolothum.thodi@huawei.com> wrote:
> 
> > From: Eric Auger <eric.auger@redhat.com>
> >
> > 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 <mst@redhat.com>
> 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
Igor Mammedov July 23, 2019, 12:58 p.m. UTC | #4
On Mon, 22 Jul 2019 14:51:59 +0000
Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com> wrote:

> 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 <shameerali.kolothum.thodi@huawei.com>
> > Cc: peter.maydell@linaro.org; sameo@linux.intel.com;
> > shannon.zhaosl@gmail.com; ard.biesheuvel@linaro.org;
> > qemu-devel@nongnu.org; xuwei (O) <xuwei5@huawei.com>; Linuxarm
> > <linuxarm@huawei.com>; eric.auger@redhat.com; qemu-arm@nongnu.org;
> > sebastien.boeuf@intel.com; lersek@redhat.com
> > 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 <shameerali.kolothum.thodi@huawei.com> wrote:
> >   
> > > From: Eric Auger <eric.auger@redhat.com>
> > >
> > > 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 <mst@redhat.com>
> > 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. 

you can use commit 4a4418369d6 as an example

> 
> 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.

I'd try to see what tests/bios-tables-test does when it's stuck.
(I'd guess that it can't find ACPI tables)

also pay attention to .scan_len so it would cover all RAM


> 
> Thanks,
> Shameer