Message ID | 1559560929-260254-3-git-send-email-imammedo@redhat.com |
---|---|
State | New |
Headers | show |
Series | tests: acpi: ARM testing support | expand |
On 06/03/19 13:22, Igor Mammedov wrote: > adds simple arm/virt test case that starts guest with > bios-tables-test.aarch64.iso.qcow2 boot image which > initializes UefiTestSupport* structure in RAM once > guest is booted. > > * see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper > > Signed-off-by: Igor Mammedov <imammedo@redhat.com> > --- > v6: > * Since aarch64 TCG is broken on 32 bit arm host, > blacklist it till it's fixed > * add aarch64 to rebuild script list > v4: > * force test to use TCG accelerator > v3: > * use firmware blobs directly from pc-bios directory > * use bios-tables-test.aarch64.iso.qcow2 as test boot image > * drop leftover qtest-uefi-images-aarch64 iMakefile rule from > previos version (Laszlo) > * add Makefile rule to include bios-tables-test into > check-qtest-aarch64 target > v2: > * specify in test_data where board's RAM starts and RAM size > > tests/Makefile.include | 4 ++++ > tests/bios-tables-test.c | 18 ++++++++++++++++++ > tests/data/acpi/rebuild-expected-aml.sh | 2 +- > 3 files changed, 23 insertions(+), 1 deletion(-) > > diff --git a/tests/Makefile.include b/tests/Makefile.include > index 1865f6b..2334969 100644 > --- a/tests/Makefile.include > +++ b/tests/Makefile.include > @@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF) > check-qtest-aarch64-y = tests/numa-test$(EXESUF) > check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF) > check-qtest-aarch64-y += tests/migration-test$(EXESUF) > +# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional I think you could also capture the following link here, in a comment: # https://bugs.launchpad.net/qemu/+bug/1830872 > +ifneq ($(ARCH),arm) Can we exclude all 32-bit host arches, not just ARM? The discussion in LP#1830872 indicates aarch64-on-i386 can fail too (not this specific guest payload FWIW, but the "tests/memory" test). Other than that: Reviewed-by: Laszlo Ersek <lersek@redhat.com> Thanks, Laszlo > +check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF) > +endif > > check-qtest-microblazeel-y += $(check-qtest-microblaze-y) > > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c > index 28d7d42..1242d63 100644 > --- a/tests/bios-tables-test.c > +++ b/tests/bios-tables-test.c > @@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void) > test_acpi_tcg_dimm_pxm(MACHINE_PC); > } > > +static void test_acpi_virt_tcg(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, > + }; > + > + test_acpi_one("-cpu cortex-a57", &data); > + free_test_data(&data); > +} > + > int main(int argc, char *argv[]) > { > const char *arch = qtest_get_arch(); > @@ -858,6 +874,8 @@ int main(int argc, char *argv[]) > qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); > qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm); > 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); > } > ret = g_test_run(); > boot_sector_cleanup(disk); > diff --git a/tests/data/acpi/rebuild-expected-aml.sh b/tests/data/acpi/rebuild-expected-aml.sh > index ff7e622..d285321 100755 > --- a/tests/data/acpi/rebuild-expected-aml.sh > +++ b/tests/data/acpi/rebuild-expected-aml.sh > @@ -12,7 +12,7 @@ > # This work is licensed under the terms of the GNU GPLv2. > # See the COPYING.LIB file in the top-level directory. > > -qemu_bins="x86_64-softmmu/qemu-system-x86_64" > +qemu_bins="x86_64-softmmu/qemu-system-x86_64 aarch64-softmmu/qemu-system-aarch64" > > if [ ! -e "tests/bios-tables-test" ]; then > echo "Test: bios-tables-test is required! Run make check before this script." >
On Mon, 3 Jun 2019 18:08:12 +0200 Laszlo Ersek <lersek@redhat.com> wrote: > On 06/03/19 13:22, Igor Mammedov wrote: > > adds simple arm/virt test case that starts guest with > > bios-tables-test.aarch64.iso.qcow2 boot image which > > initializes UefiTestSupport* structure in RAM once > > guest is booted. > > > > * see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper > > > > Signed-off-by: Igor Mammedov <imammedo@redhat.com> > > --- > > v6: > > * Since aarch64 TCG is broken on 32 bit arm host, > > blacklist it till it's fixed > > * add aarch64 to rebuild script list > > v4: > > * force test to use TCG accelerator > > v3: > > * use firmware blobs directly from pc-bios directory > > * use bios-tables-test.aarch64.iso.qcow2 as test boot image > > * drop leftover qtest-uefi-images-aarch64 iMakefile rule from > > previos version (Laszlo) > > * add Makefile rule to include bios-tables-test into > > check-qtest-aarch64 target > > v2: > > * specify in test_data where board's RAM starts and RAM size > > > > tests/Makefile.include | 4 ++++ > > tests/bios-tables-test.c | 18 ++++++++++++++++++ > > tests/data/acpi/rebuild-expected-aml.sh | 2 +- > > 3 files changed, 23 insertions(+), 1 deletion(-) > > > > diff --git a/tests/Makefile.include b/tests/Makefile.include > > index 1865f6b..2334969 100644 > > --- a/tests/Makefile.include > > +++ b/tests/Makefile.include > > @@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF) > > check-qtest-aarch64-y = tests/numa-test$(EXESUF) > > check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF) > > check-qtest-aarch64-y += tests/migration-test$(EXESUF) > > +# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional > > I think you could also capture the following link here, in a comment: > > # https://bugs.launchpad.net/qemu/+bug/1830872 Michael, could you fix it up on commit? or we could merge v4 [PATCH v4 13/15] tests: acpi: add simple arm/virt testcase which is the same modulo this blacklisting hunk, if [RFC PATCH] cputlb: use uint64_t for interim values for unaligned load fix is used as prerequisite. > > > +ifneq ($(ARCH),arm) > > Can we exclude all 32-bit host arches, not just ARM? The discussion in > LP#1830872 indicates aarch64-on-i386 can fail too (not this specific > guest payload FWIW, but the "tests/memory" test). I'd guess it's topic for a separate discussion (considering bios-tables-test isn't affected it's probably not upto me to pull this trigger). > > Other than that: > > Reviewed-by: Laszlo Ersek <lersek@redhat.com> Thanks! > > Thanks, > Laszlo > > > > +check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF) > > +endif > > > > check-qtest-microblazeel-y += $(check-qtest-microblaze-y) > > > > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c > > index 28d7d42..1242d63 100644 > > --- a/tests/bios-tables-test.c > > +++ b/tests/bios-tables-test.c > > @@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void) > > test_acpi_tcg_dimm_pxm(MACHINE_PC); > > } > > > > +static void test_acpi_virt_tcg(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, > > + }; > > + > > + test_acpi_one("-cpu cortex-a57", &data); > > + free_test_data(&data); > > +} > > + > > int main(int argc, char *argv[]) > > { > > const char *arch = qtest_get_arch(); > > @@ -858,6 +874,8 @@ int main(int argc, char *argv[]) > > qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); > > qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm); > > 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); > > } > > ret = g_test_run(); > > boot_sector_cleanup(disk); > > diff --git a/tests/data/acpi/rebuild-expected-aml.sh b/tests/data/acpi/rebuild-expected-aml.sh > > index ff7e622..d285321 100755 > > --- a/tests/data/acpi/rebuild-expected-aml.sh > > +++ b/tests/data/acpi/rebuild-expected-aml.sh > > @@ -12,7 +12,7 @@ > > # This work is licensed under the terms of the GNU GPLv2. > > # See the COPYING.LIB file in the top-level directory. > > > > -qemu_bins="x86_64-softmmu/qemu-system-x86_64" > > +qemu_bins="x86_64-softmmu/qemu-system-x86_64 aarch64-softmmu/qemu-system-aarch64" > > > > if [ ! -e "tests/bios-tables-test" ]; then > > echo "Test: bios-tables-test is required! Run make check before this script." > > >
On Tue, Jun 04, 2019 at 01:51:33PM +0200, Igor Mammedov wrote: > On Mon, 3 Jun 2019 18:08:12 +0200 > Laszlo Ersek <lersek@redhat.com> wrote: > > > On 06/03/19 13:22, Igor Mammedov wrote: > > > adds simple arm/virt test case that starts guest with > > > bios-tables-test.aarch64.iso.qcow2 boot image which > > > initializes UefiTestSupport* structure in RAM once > > > guest is booted. > > > > > > * see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper > > > > > > Signed-off-by: Igor Mammedov <imammedo@redhat.com> > > > --- > > > v6: > > > * Since aarch64 TCG is broken on 32 bit arm host, > > > blacklist it till it's fixed > > > * add aarch64 to rebuild script list > > > v4: > > > * force test to use TCG accelerator > > > v3: > > > * use firmware blobs directly from pc-bios directory > > > * use bios-tables-test.aarch64.iso.qcow2 as test boot image > > > * drop leftover qtest-uefi-images-aarch64 iMakefile rule from > > > previos version (Laszlo) > > > * add Makefile rule to include bios-tables-test into > > > check-qtest-aarch64 target > > > v2: > > > * specify in test_data where board's RAM starts and RAM size > > > > > > tests/Makefile.include | 4 ++++ > > > tests/bios-tables-test.c | 18 ++++++++++++++++++ > > > tests/data/acpi/rebuild-expected-aml.sh | 2 +- > > > 3 files changed, 23 insertions(+), 1 deletion(-) > > > > > > diff --git a/tests/Makefile.include b/tests/Makefile.include > > > index 1865f6b..2334969 100644 > > > --- a/tests/Makefile.include > > > +++ b/tests/Makefile.include > > > @@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF) > > > check-qtest-aarch64-y = tests/numa-test$(EXESUF) > > > check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF) > > > check-qtest-aarch64-y += tests/migration-test$(EXESUF) > > > +# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional > > > > I think you could also capture the following link here, in a comment: > > > > # https://bugs.launchpad.net/qemu/+bug/1830872 > Michael, > could you fix it up on commit? I prefer just seeing a fixed up patch. > or we could merge v4 > [PATCH v4 13/15] tests: acpi: add simple arm/virt testcase > which is the same modulo this blacklisting hunk, if > [RFC PATCH] cputlb: use uint64_t for interim values for unaligned load > fix is used as prerequisite. > > > > > > +ifneq ($(ARCH),arm) > > > > Can we exclude all 32-bit host arches, not just ARM? The discussion in > > LP#1830872 indicates aarch64-on-i386 can fail too (not this specific > > guest payload FWIW, but the "tests/memory" test). > I'd guess it's topic for a separate discussion (considering bios-tables-test > isn't affected it's probably not upto me to pull this trigger). > > > > > Other than that: > > > > Reviewed-by: Laszlo Ersek <lersek@redhat.com> > Thanks! > > > > > Thanks, > > Laszlo > > > > > > > +check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF) > > > +endif > > > > > > check-qtest-microblazeel-y += $(check-qtest-microblaze-y) > > > > > > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c > > > index 28d7d42..1242d63 100644 > > > --- a/tests/bios-tables-test.c > > > +++ b/tests/bios-tables-test.c > > > @@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void) > > > test_acpi_tcg_dimm_pxm(MACHINE_PC); > > > } > > > > > > +static void test_acpi_virt_tcg(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, > > > + }; > > > + > > > + test_acpi_one("-cpu cortex-a57", &data); > > > + free_test_data(&data); > > > +} > > > + > > > int main(int argc, char *argv[]) > > > { > > > const char *arch = qtest_get_arch(); > > > @@ -858,6 +874,8 @@ int main(int argc, char *argv[]) > > > qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); > > > qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm); > > > 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); > > > } > > > ret = g_test_run(); > > > boot_sector_cleanup(disk); > > > diff --git a/tests/data/acpi/rebuild-expected-aml.sh b/tests/data/acpi/rebuild-expected-aml.sh > > > index ff7e622..d285321 100755 > > > --- a/tests/data/acpi/rebuild-expected-aml.sh > > > +++ b/tests/data/acpi/rebuild-expected-aml.sh > > > @@ -12,7 +12,7 @@ > > > # This work is licensed under the terms of the GNU GPLv2. > > > # See the COPYING.LIB file in the top-level directory. > > > > > > -qemu_bins="x86_64-softmmu/qemu-system-x86_64" > > > +qemu_bins="x86_64-softmmu/qemu-system-x86_64 aarch64-softmmu/qemu-system-aarch64" > > > > > > if [ ! -e "tests/bios-tables-test" ]; then > > > echo "Test: bios-tables-test is required! Run make check before this script." > > > > >
diff --git a/tests/Makefile.include b/tests/Makefile.include index 1865f6b..2334969 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF) check-qtest-aarch64-y = tests/numa-test$(EXESUF) check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF) check-qtest-aarch64-y += tests/migration-test$(EXESUF) +# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional +ifneq ($(ARCH),arm) +check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF) +endif check-qtest-microblazeel-y += $(check-qtest-microblaze-y) diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c index 28d7d42..1242d63 100644 --- a/tests/bios-tables-test.c +++ b/tests/bios-tables-test.c @@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void) test_acpi_tcg_dimm_pxm(MACHINE_PC); } +static void test_acpi_virt_tcg(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, + }; + + test_acpi_one("-cpu cortex-a57", &data); + free_test_data(&data); +} + int main(int argc, char *argv[]) { const char *arch = qtest_get_arch(); @@ -858,6 +874,8 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm); 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); } ret = g_test_run(); boot_sector_cleanup(disk); diff --git a/tests/data/acpi/rebuild-expected-aml.sh b/tests/data/acpi/rebuild-expected-aml.sh index ff7e622..d285321 100755 --- a/tests/data/acpi/rebuild-expected-aml.sh +++ b/tests/data/acpi/rebuild-expected-aml.sh @@ -12,7 +12,7 @@ # This work is licensed under the terms of the GNU GPLv2. # See the COPYING.LIB file in the top-level directory. -qemu_bins="x86_64-softmmu/qemu-system-x86_64" +qemu_bins="x86_64-softmmu/qemu-system-x86_64 aarch64-softmmu/qemu-system-aarch64" if [ ! -e "tests/bios-tables-test" ]; then echo "Test: bios-tables-test is required! Run make check before this script."
adds simple arm/virt test case that starts guest with bios-tables-test.aarch64.iso.qcow2 boot image which initializes UefiTestSupport* structure in RAM once guest is booted. * see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper Signed-off-by: Igor Mammedov <imammedo@redhat.com> --- v6: * Since aarch64 TCG is broken on 32 bit arm host, blacklist it till it's fixed * add aarch64 to rebuild script list v4: * force test to use TCG accelerator v3: * use firmware blobs directly from pc-bios directory * use bios-tables-test.aarch64.iso.qcow2 as test boot image * drop leftover qtest-uefi-images-aarch64 iMakefile rule from previos version (Laszlo) * add Makefile rule to include bios-tables-test into check-qtest-aarch64 target v2: * specify in test_data where board's RAM starts and RAM size tests/Makefile.include | 4 ++++ tests/bios-tables-test.c | 18 ++++++++++++++++++ tests/data/acpi/rebuild-expected-aml.sh | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-)