On Mon, 11 Jul 2022 11:44:35 +0100 Hesham Almatary <hesham.almat...@huawei.com> wrote:
> This patch imitates the "tests: acpi: q35: add test for hmat nodes > without initiators" commit to test numa nodes with different HMAT > attributes, but on AArch64/virt. > > Tested with: > qemu-system-aarch64 -accel tcg \ > -machine virt,hmat=on,gic-version=3 -cpu cortex-a57 \ > -bios qemu-efi-aarch64/QEMU_EFI.fd \ > -kernel Image -append "root=/dev/vda2 console=ttyAMA0" \ > -drive if=virtio,file=aarch64.qcow2,format=qcow2,id=hd \ > -device virtio-rng-pci \ > -net user,hostfwd=tcp::10022-:22 -net nic \ > -device intel-hda -device hda-duplex -nographic \ > -smp 4 \ > -m 3G \ > -object memory-backend-ram,size=1G,id=ram0 \ > -object memory-backend-ram,size=1G,id=ram1 \ > -object memory-backend-ram,size=1G,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 > > Signed-off-by: Hesham Almatary <hesham.almat...@huawei.com> > --- > tests/qtest/bios-tables-test.c | 55 ++++++++++++++++++++++++++++++++++ > 1 file changed, 55 insertions(+) > > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c > index f02b386d75..ed843c2abf 100644 > --- a/tests/qtest/bios-tables-test.c > +++ b/tests/qtest/bios-tables-test.c > @@ -1461,6 +1461,59 @@ static void test_acpi_piix4_tcg_acpi_hmat(void) > test_acpi_tcg_acpi_hmat(MACHINE_PC); > } > > +static void test_acpi_virt_tcg_acpi_hmat(void) > +{ > + test_data data = { > + .machine = "virt", > + .tcg_only = true, > + .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 = ".acpihmatvirt"; > + > + test_acpi_one(" -machine hmat=on" > + " -cpu cortex-a57" > + " -smp 4" > + " -m 256M" > + " -object memory-backend-ram,size=64M,id=ram0" > + " -object memory-backend-ram,size=64M,id=ram1" > + " -object memory-backend-ram,size=128M,id=ram2" > + " -numa node,nodeid=0,memdev=ram0,cpus=0-1" > + " -numa node,nodeid=1,memdev=ram1,cpus=2-3" don't use legacy syntax, see test_acpi_tcg_dimm_pxm() for example > + " -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_q35_tcg_acpi_hmat_noinitiator(void) > { > test_data data; > @@ -1875,6 +1928,8 @@ int main(int argc, char *argv[]) > } else if (strcmp(arch, "aarch64") == 0) { > if (has_tcg) { > qtest_add_func("acpi/virt", test_acpi_virt_tcg); > + qtest_add_func("acpi/virt/acpihmatvirt", > + test_acpi_virt_tcg_acpi_hmat); > qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem); > qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp); > qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb);