aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDou Liyang <douly.fnst@cn.fujitsu.com>2017-12-14 12:08:54 +0800
committerMichael S. Tsirkin <mst@redhat.com>2018-01-18 21:52:38 +0200
commitd82c4f82e0233da642c36c40ef8da781fee689bc (patch)
tree09dacab01bc055ec1503d4c2f968f24c4accd789
parentfced4d00e68e7559c73746d963265f7fd0b6abf9 (diff)
downloadqemu-d82c4f82e0233da642c36c40ef8da781fee689bc.zip
qemu-d82c4f82e0233da642c36c40ef8da781fee689bc.tar.gz
qemu-d82c4f82e0233da642c36c40ef8da781fee689bc.tar.bz2
ACPI/unit-test: Add a testcase for RAM allocation in numa node
As QEMU supports the memory-less node, it is possible that there is no RAM in the first numa node(also be called as node0). eg: ... \ -m 128,slots=3,maxmem=1G \ -numa node -numa node,mem=128M \ But, this makes it hard for QEMU to build a known-to-work ACPI SRAT table. Only fixing it is not enough. Add a testcase for this situation to make sure the ACPI table is correct for guest. Suggested-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--tests/acpi-test-data/pc/DSDT.numamembin0 -> 5150 bytes
-rw-r--r--tests/acpi-test-data/pc/SRAT.numamembin0 -> 224 bytes
-rw-r--r--tests/acpi-test-data/q35/DSDT.numamembin0 -> 7834 bytes
-rw-r--r--tests/acpi-test-data/q35/SRAT.numamembin0 -> 224 bytes
-rw-r--r--tests/bios-tables-test.c24
5 files changed, 24 insertions, 0 deletions
diff --git a/tests/acpi-test-data/pc/DSDT.numamem b/tests/acpi-test-data/pc/DSDT.numamem
new file mode 100644
index 0000000..224cfdd
--- /dev/null
+++ b/tests/acpi-test-data/pc/DSDT.numamem
Binary files differ
diff --git a/tests/acpi-test-data/pc/SRAT.numamem b/tests/acpi-test-data/pc/SRAT.numamem
new file mode 100644
index 0000000..dbc595d
--- /dev/null
+++ b/tests/acpi-test-data/pc/SRAT.numamem
Binary files differ
diff --git a/tests/acpi-test-data/q35/DSDT.numamem b/tests/acpi-test-data/q35/DSDT.numamem
new file mode 100644
index 0000000..8c9fa44
--- /dev/null
+++ b/tests/acpi-test-data/q35/DSDT.numamem
Binary files differ
diff --git a/tests/acpi-test-data/q35/SRAT.numamem b/tests/acpi-test-data/q35/SRAT.numamem
new file mode 100644
index 0000000..dbc595d
--- /dev/null
+++ b/tests/acpi-test-data/q35/SRAT.numamem
Binary files differ
diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
index e28e0c9..def81fc 100644
--- a/tests/bios-tables-test.c
+++ b/tests/bios-tables-test.c
@@ -810,6 +810,28 @@ static void test_acpi_piix4_tcg_memhp(void)
free_test_data(&data);
}
+static void test_acpi_q35_tcg_numamem(void)
+{
+ test_data data;
+
+ memset(&data, 0, sizeof(data));
+ data.machine = MACHINE_Q35;
+ data.variant = ".numamem";
+ test_acpi_one(" -numa node -numa node,mem=128", &data);
+ free_test_data(&data);
+}
+
+static void test_acpi_piix4_tcg_numamem(void)
+{
+ test_data data;
+
+ memset(&data, 0, sizeof(data));
+ data.machine = MACHINE_PC;
+ data.variant = ".numamem";
+ test_acpi_one(" -numa node -numa node,mem=128", &data);
+ free_test_data(&data);
+}
+
int main(int argc, char *argv[])
{
const char *arch = qtest_get_arch();
@@ -832,6 +854,8 @@ int main(int argc, char *argv[])
qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
+ qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
+ qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
}
ret = g_test_run();
boot_sector_cleanup(disk);