Message ID | a15cad76-df3e-b5c7-44e2-db4a470885d8@inria.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hmat acpi: Don't require initiator value in -numa | expand |
On Wed, 29 Jun 2022 11:35:10 +0200 Brice Goglin <Brice.Goglin@inria.fr> wrote: > Build a machine with 4 cores and 3 NUMA nodes. > 1st NUMA is local to cores #0-1. > 2nd NUMA is local to cores #2-3. > 3rd NUMA has no initiator. > HMAT SLLB says memory access performance of 3rd NUMA is lower, > but it's identical for all cores hence all cores are its best initiator. [...] only commit message got fixed, the rest of comments weren't addressed (see prev rev) > > Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > --- > tests/qtest/bios-tables-test.c | 45 ++++++++++++++++++++++++++++++++++ > 1 file changed, 45 insertions(+) > > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c > index 359916c228..1252b166ff 100644 > --- a/tests/qtest/bios-tables-test.c > +++ b/tests/qtest/bios-tables-test.c > @@ -1461,6 +1461,50 @@ static void test_acpi_piix4_tcg_acpi_hmat(void) > test_acpi_tcg_acpi_hmat(MACHINE_PC); > } > > +static void test_acpi_q35_tcg_acpi_hmat_noinitiator(void) > +{ > + test_data data; > + > + memset(&data, 0, sizeof(data)); > + data.machine = MACHINE_Q35; > + data.variant = ".acpihmat-noinitiator"; > + test_acpi_one(" -machine hmat=on" > + " -smp 4" > + " -m 128M" > + " -object memory-backend-ram,size=32M,id=ram0" > + " -object memory-backend-ram,size=32M,id=ram1" > + " -object memory-backend-ram,size=64M,id=ram2" > + " -numa node,nodeid=0,memdev=ram0,cpus=0-1" > + " -numa node,nodeid=1,memdev=ram1,cpus=2-3" > + " -numa node,nodeid=2,memdev=ram2" > + " -numa hmat-lb,initiator=0,target=0,hierarchy=memory," > + "data-type=access-latency,latency=10" > + " -numa hmat-lb,initiator=0,target=0,hierarchy=memory," > + "data-type=access-bandwidth,bandwidth=10485760" > + " -numa hmat-lb,initiator=0,target=1,hierarchy=memory," > + "data-type=access-latency,latency=20" > + " -numa hmat-lb,initiator=0,target=1,hierarchy=memory," > + "data-type=access-bandwidth,bandwidth=5242880" > + " -numa hmat-lb,initiator=0,target=2,hierarchy=memory," > + "data-type=access-latency,latency=30" > + " -numa hmat-lb,initiator=0,target=2,hierarchy=memory," > + "data-type=access-bandwidth,bandwidth=1048576" > + " -numa hmat-lb,initiator=1,target=0,hierarchy=memory," > + "data-type=access-latency,latency=20" > + " -numa hmat-lb,initiator=1,target=0,hierarchy=memory," > + "data-type=access-bandwidth,bandwidth=5242880" > + " -numa hmat-lb,initiator=1,target=1,hierarchy=memory," > + "data-type=access-latency,latency=10" > + " -numa hmat-lb,initiator=1,target=1,hierarchy=memory," > + "data-type=access-bandwidth,bandwidth=10485760" > + " -numa hmat-lb,initiator=1,target=2,hierarchy=memory," > + "data-type=access-latency,latency=30" > + " -numa hmat-lb,initiator=1,target=2,hierarchy=memory," > + "data-type=access-bandwidth,bandwidth=1048576", > + &data); > + free_test_data(&data); > +} > + > static void test_acpi_erst(const char *machine) > { > gchar *tmp_path = g_dir_make_tmp("qemu-test-erst.XXXXXX", NULL); > @@ -1803,6 +1847,7 @@ int main(int argc, char *argv[]) > qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); > qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hmat); > qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat); > + qtest_add_func("acpi/q35/acpihmat-noinitiator", test_acpi_q35_tcg_acpi_hmat_noinitiator); > qtest_add_func("acpi/piix4/acpierst", test_acpi_piix4_acpi_erst); > qtest_add_func("acpi/q35/acpierst", test_acpi_q35_acpi_erst); > qtest_add_func("acpi/q35/applesmc", test_acpi_q35_applesmc);
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 359916c228..1252b166ff 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1461,6 +1461,50 @@ static void test_acpi_piix4_tcg_acpi_hmat(void) test_acpi_tcg_acpi_hmat(MACHINE_PC); } +static void test_acpi_q35_tcg_acpi_hmat_noinitiator(void) +{ + test_data data; + + memset(&data, 0, sizeof(data)); + data.machine = MACHINE_Q35; + data.variant = ".acpihmat-noinitiator"; + test_acpi_one(" -machine hmat=on" + " -smp 4" + " -m 128M" + " -object memory-backend-ram,size=32M,id=ram0" + " -object memory-backend-ram,size=32M,id=ram1" + " -object memory-backend-ram,size=64M,id=ram2" + " -numa node,nodeid=0,memdev=ram0,cpus=0-1" + " -numa node,nodeid=1,memdev=ram1,cpus=2-3" + " -numa node,nodeid=2,memdev=ram2" + " -numa hmat-lb,initiator=0,target=0,hierarchy=memory," + "data-type=access-latency,latency=10" + " -numa hmat-lb,initiator=0,target=0,hierarchy=memory," + "data-type=access-bandwidth,bandwidth=10485760" + " -numa hmat-lb,initiator=0,target=1,hierarchy=memory," + "data-type=access-latency,latency=20" + " -numa hmat-lb,initiator=0,target=1,hierarchy=memory," + "data-type=access-bandwidth,bandwidth=5242880" + " -numa hmat-lb,initiator=0,target=2,hierarchy=memory," + "data-type=access-latency,latency=30" + " -numa hmat-lb,initiator=0,target=2,hierarchy=memory," + "data-type=access-bandwidth,bandwidth=1048576" + " -numa hmat-lb,initiator=1,target=0,hierarchy=memory," + "data-type=access-latency,latency=20" + " -numa hmat-lb,initiator=1,target=0,hierarchy=memory," + "data-type=access-bandwidth,bandwidth=5242880" + " -numa hmat-lb,initiator=1,target=1,hierarchy=memory," + "data-type=access-latency,latency=10" + " -numa hmat-lb,initiator=1,target=1,hierarchy=memory," + "data-type=access-bandwidth,bandwidth=10485760" + " -numa hmat-lb,initiator=1,target=2,hierarchy=memory," + "data-type=access-latency,latency=30" + " -numa hmat-lb,initiator=1,target=2,hierarchy=memory," + "data-type=access-bandwidth,bandwidth=1048576", + &data); + free_test_data(&data); +} + static void test_acpi_erst(const char *machine) { gchar *tmp_path = g_dir_make_tmp("qemu-test-erst.XXXXXX", NULL); @@ -1803,6 +1847,7 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hmat); qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat); + qtest_add_func("acpi/q35/acpihmat-noinitiator", test_acpi_q35_tcg_acpi_hmat_noinitiator); qtest_add_func("acpi/piix4/acpierst", test_acpi_piix4_acpi_erst); qtest_add_func("acpi/q35/acpierst", test_acpi_q35_acpi_erst); qtest_add_func("acpi/q35/applesmc", test_acpi_q35_applesmc);