On Wed, 29 Jun 2022 11:35:10 +0200 Brice Goglin <brice.gog...@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.gog...@inria.fr> > Reviewed-by: Jonathan Cameron <jonathan.came...@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);