#
61ff9901 |
| 04-Jul-2025 |
Andrew Jones <andrew.jones@linux.dev> |
Merge branch 'arm/queue' into 'master'
scripts: Add support for kvmtool
See merge request kvm-unit-tests/kvm-unit-tests!79
|
#
db9c4e1c |
| 25-Jun-2025 |
Alexandru Elisei <alexandru.elisei@arm.com> |
scripts: Add support for kvmtool
Teach the arm runner to use kvmtool when kvm-unit-tests has been configured appropriately.
The test is ran using run_test_status(), and a 0 return code (which means
scripts: Add support for kvmtool
Teach the arm runner to use kvmtool when kvm-unit-tests has been configured appropriately.
The test is ran using run_test_status(), and a 0 return code (which means success) is converted to 1, because kvmtool does not have a testdev device to return the test exit code, so kvm-unit-tests must always parse the "EXIT: STATUS" line for the exit code.
Reviewed-by: Andrew Jones <andrew.jones@linux.dev> Reviewed-by: Shaoqin Huang <shahuang@redhat.com> Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
9fcec1db |
| 25-Jun-2025 |
Alexandru Elisei <alexandru.elisei@arm.com> |
scripts: Refuse to run the tests if not configured for qemu
Arm and arm64 support running the tests under kvmtool. kvmtool has a different command line syntax for configuring and running a virtual m
scripts: Refuse to run the tests if not configured for qemu
Arm and arm64 support running the tests under kvmtool. kvmtool has a different command line syntax for configuring and running a virtual machine, and the automated scripts know only how to use qemu.
One issue with that is even though the tests have been configured for kvmtool (with ./configure --target=kvmtool), the scripts will use qemu to run the tests, and without looking at the logs there is no indication that the tests haven't been run with kvmtool, as configured.
Another issue is that kvmtool uses a different address for the UART and when running the tests with qemu via the scripts, this warning is displayed:
WARNING: early print support may not work. Found uart at 0x9000000, but early base is 0x1000000.
which might trip up an unsuspected user.
There are four different ways to run a test using the test infrastructure: with run_tests.sh, by invoking arm/run or arm/efi/run with the correct parameters (only the arm directory is mentioned here because the tests can be configured for kvmtool only on arm and arm64), and by creating standalone tests.
run_tests.sh ends up executing either arm/run or arm/efi/run, so add a check to these two scripts for the test target, and refuse to run the test if kvm-unit-tests has been configured for kvmtool.
mkstandalone.sh also executes arm/run or arm/efi run, but the usual use case for standalone tests is to compile them on one machine, and then to run them on a different machine. This two step process can be time consuming, so save the user time (and frustration!) and add a check directly to mkstandalone.sh.
Reviewed-by: Andrew Jones <andrew.jones@linux.dev> Reviewed-by: Shaoqin Huang <shahuang@redhat.com> Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
abdc5d02 |
| 08-Apr-2025 |
Andrew Jones <andrew.jones@linux.dev> |
Merge branch 'arm/queue' into 'master'
arm/arm64: Default to 'max' cpu type and add MTE test
See merge request kvm-unit-tests/kvm-unit-tests!76
|
#
5f77b72d |
| 08-Apr-2025 |
Jean-Philippe Brucker <jean-philippe@linaro.org> |
configure: Add --target-cpu option
Add the --target-cpu option to let users set the CPU type to run on. At the moment --processor allows to set both GCC -mcpu flag and QEMU -cpu. On Arm we'd like to
configure: Add --target-cpu option
Add the --target-cpu option to let users set the CPU type to run on. At the moment --processor allows to set both GCC -mcpu flag and QEMU -cpu. On Arm we'd like to pass `-cpu max` to QEMU in order to enable all the TCG features by default, and it could also be nice to let users modify the CPU capabilities by setting extra -cpu options. Since GCC -mcpu doesn't accept "max" or "host", separate the compiler and QEMU arguments.
`--processor` is now exclusively for compiler options, as indicated by its documentation ("processor to compile for"). So use $TARGET_CPU on RISC-V as well.
Suggested-by: Andrew Jones <andrew.jones@linux.dev> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
611fe6de |
| 18-Mar-2024 |
Andrew Jones <andrew.jones@linux.dev> |
Merge branch 'arm/queue' into 'master'
arm/arm64: EFI improvements and no more MAX_SMP probing
See merge request kvm-unit-tests/kvm-unit-tests!53
|
#
5ded2989 |
| 05-Mar-2024 |
Andrew Jones <andrew.jones@linux.dev> |
arm64: efi: Allow running tests directly
Since it's possible to run tests with UEFI and the QEMU -kernel option (and now the DTB will be found and even the environ will be set up from an initrd if g
arm64: efi: Allow running tests directly
Since it's possible to run tests with UEFI and the QEMU -kernel option (and now the DTB will be found and even the environ will be set up from an initrd if given with the -initrd option), then we can skip the loading of EFI tests into a file system and booting to the shell to run them. Just run them directly. Running directly is waaaaaay faster than booting the shell first. We keep the UEFI shell as the default behavior, though, and provide a new configure option to enable the direct running.
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
63c60156 |
| 05-Mar-2024 |
Andrew Jones <andrew.jones@linux.dev> |
arm64: efi: Move run code into a function
Push the run code in arm/efi/run into a function named uefi_shell_run() since it will create an EFI file system, copy the test and possibly the DTB there, a
arm64: efi: Move run code into a function
Push the run code in arm/efi/run into a function named uefi_shell_run() since it will create an EFI file system, copy the test and possibly the DTB there, and create a startup.nsh which executes the test from the UEFI shell. Pushing this code into a function allows additional execution paths to be created in the script. Also rename EFI_RUN to UEFI_SHELL_RUN to pass the information on to arm/run that it's being called from uefi_shell_run().
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
e526bc78 |
| 01-Jul-2023 |
Andrew Jones <andrew.jones@linux.dev> |
Merge branch 'arm/queue' into 'master'
arm/arm64: EFI support, arm64 backtrace support, PMU test improvements, and more
See merge request kvm-unit-tests/kvm-unit-tests!43
|
#
01e047d0 |
| 23-Jun-2023 |
Gavin Shan <gshan@redhat.com> |
runtime: Allow to specify properties for accelerator
There are extra properties for accelerators to enable the specific features. For example, the dirty ring for KVM accelerator can be enabled by "-
runtime: Allow to specify properties for accelerator
There are extra properties for accelerators to enable the specific features. For example, the dirty ring for KVM accelerator can be enabled by "-accel kvm,dirty-ring-size=65536". Unfortuntely, the extra properties for the accelerators aren't supported. It makes it's impossible to test the combination of KVM and dirty ring as the following error message indicates.
# cd /home/gavin/sandbox/kvm-unit-tests/tests # QEMU=/home/gavin/sandbox/qemu.main/build/qemu-system-aarch64 \ ACCEL=kvm,dirty-ring-size=65536 ./its-migration : BUILD_HEAD=2fffb37e timeout -k 1s --foreground 90s \ /home/gavin/sandbox/qemu.main/build/qemu-system-aarch64 \ -nodefaults -machine virt -accel kvm,dirty-ring-size=65536 \ -cpu cortex-a57 -device virtio-serial-device \ -device virtconsole,chardev=ctd -chardev testdev,id=ctd \ -device pci-testdev -display none -serial stdio \ -kernel _NO_FILE_4Uhere_ -smp 160 -machine gic-version=3 \ -append its-pending-migration # -initrd /tmp/tmp.gfDLa1EtWk : qemu-system-aarch64: kvm_init_vcpu: kvm_arch_init_vcpu failed (0): Invalid argument
Allow to specify extra properties for accelerators. With this, the "its-migration" can be tested for the combination of KVM and dirty ring. Rename get_qemu_accelerator() to set_qemu_accelerator() since no values are returned by printing at return.
Signed-off-by: Gavin Shan <gshan@redhat.com> Tested-by: Nico Boehr <nrb@linux.ibm.com> Acked-by: Nico Boehr <nrb@linux.ibm.com> Reviewed-by: Andrew Jones <andrew.jones@linux.dev> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
2607d2d6 |
| 30-May-2023 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
arm64: Add an efi/run script
This change adds a efi/run script inspired by the one in x86. This script will setup a folder with the test compiled as an EFI app and a startup.nsh script. The script l
arm64: Add an efi/run script
This change adds a efi/run script inspired by the one in x86. This script will setup a folder with the test compiled as an EFI app and a startup.nsh script. The script launches QEMU providing an image with EDKII and the path to the folder with the test which is executed automatically.
For example:
$> ./arm/efi/run ./arm/selftest.efi -append "setup smp=2 mem=256" -smp 2 -m 256
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Ricardo Koller <ricarkol@google.com> Reviewed-by: Shaoqin Huang <shahuang@redhat.com> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
2fffb37e |
| 21-Mar-2023 |
Andrew Jones <andrew.jones@linux.dev> |
Merge branch 'arm/queue' into 'master'
arm cleanups
See merge request kvm-unit-tests/kvm-unit-tests!41
|
#
d5be1090 |
| 03-Mar-2023 |
Shaoqin Huang <shahuang@redhat.com> |
arm: Clean up the run script
Using more simple bash command to clean up the run script.
No functional change intended.
Signed-off-by: Shaoqin Huang <shahuang@redhat.com> Signed-off-by: Andrew Jone
arm: Clean up the run script
Using more simple bash command to clean up the run script.
No functional change intended.
Signed-off-by: Shaoqin Huang <shahuang@redhat.com> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
29e06611 |
| 03-Mar-2023 |
Shaoqin Huang <shahuang@redhat.com> |
arm: Replace the obsolete qemu script
The qemu script used to detect the testdev is obsoleted, replace it with the modern way to detect if testdev exists which was first introduced at QEMU v2.7.50 b
arm: Replace the obsolete qemu script
The qemu script used to detect the testdev is obsoleted, replace it with the modern way to detect if testdev exists which was first introduced at QEMU v2.7.50 by: 517b3d4016 (chardev: Add 'help' option to print all available chardev backend types).
Signed-off-by: Shaoqin Huang <shahuang@redhat.com> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
show more ...
|
#
8719e832 |
| 17-May-2022 |
Andrew Jones <drjones@redhat.com> |
Merge branch 'arm/queue' into 'master'
arm: Improve building and running
See merge request kvm-unit-tests/kvm-unit-tests!31
|
#
c7d6c7f0 |
| 17-Mar-2022 |
Andrew Jones <drjones@redhat.com> |
arm/run: Use TCG with qemu-system-arm on arm64 systems
If the user sets QEMU=qemu-system-arm on arm64 systems, the tests can only be run by using the TCG accelerator. In this case use TCG instead of
arm/run: Use TCG with qemu-system-arm on arm64 systems
If the user sets QEMU=qemu-system-arm on arm64 systems, the tests can only be run by using the TCG accelerator. In this case use TCG instead of KVM.
Signed-off-by: Andrew Jones <drjones@redhat.com> [ Alex E: Added commit message ] Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
show more ...
|
#
07da5bc1 |
| 15-Mar-2022 |
Andrew Jones <drjones@redhat.com> |
Merge branch 'arm/queue' into 'master'
arm/queue: configure and run script improvements
See merge request kvm-unit-tests/kvm-unit-tests!27
|
#
ee5a8a1a |
| 15-Mar-2022 |
Andrew Jones <drjones@redhat.com> |
arch-run: Introduce QEMU_ARCH
Add QEMU_ARCH, which allows run scripts to specify which architecture of QEMU should be used. This is useful on AArch64 when running with KVM and running AArch32 tests.
arch-run: Introduce QEMU_ARCH
Add QEMU_ARCH, which allows run scripts to specify which architecture of QEMU should be used. This is useful on AArch64 when running with KVM and running AArch32 tests. For those tests, we *don't* want to select the 'arm' QEMU, as would have been selected, but rather the $HOST ('aarch64') QEMU.
To use this new variable, simply ensure it's set prior to calling search_qemu_binary().
Cc: Alexandru Elisei <alexandru.elisei@arm.com> Tested-by: Alexandru Elisei <alexandru.elisei@arm.com> Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Andrew Jones <drjones@redhat.com>
show more ...
|
#
c157b6e2 |
| 17-Feb-2022 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
configure: arm: Fixes to build and run tests on Apple Silicon
On MacOS:
$> uname -m
returns:
arm64
To unify how we handle the achitecture detection across different systems, sed it to aarch64 wh
configure: arm: Fixes to build and run tests on Apple Silicon
On MacOS:
$> uname -m
returns:
arm64
To unify how we handle the achitecture detection across different systems, sed it to aarch64 which is what's typically reported on Linux.
In addition, when HVF is the acceleration method on aarch64, make sure we select the right processor when invoking qemu.
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Signed-off-by: Andrew Jones <drjones@redhat.com>
show more ...
|
#
dbf4a3c3 |
| 01-Feb-2022 |
Andrew Jones <drjones@redhat.com> |
Merge branch 'arm/queue' into 'master'
arm64: Merge arm/queue
See merge request kvm-unit-tests/kvm-unit-tests!23
|
#
856587f0 |
| 02-Dec-2021 |
Alex Bennée <alex.bennee@linaro.org> |
arm/run: use separate --accel form
This will allow TCG tests to alter things such as tb-size.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20211202115352.951548-9-alex.bennee@li
arm/run: use separate --accel form
This will allow TCG tests to alter things such as tb-size.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20211202115352.951548-9-alex.bennee@linaro.org> Signed-off-by: Andrew Jones <drjones@redhat.com>
show more ...
|
#
57ab5a6d |
| 20-Jan-2022 |
Thomas Huth <thuth@redhat.com> |
Use a prefix for the STANDALONE environment variable
Seems like "STANDALONE" is too generic and causes a conflict in certain environments (see bug link below). Add a prefix here to decrease the poss
Use a prefix for the STANDALONE environment variable
Seems like "STANDALONE" is too generic and causes a conflict in certain environments (see bug link below). Add a prefix here to decrease the possibility of a conflict here.
Resolves: https://gitlab.com/kvm-unit-tests/kvm-unit-tests/-/issues/3 Message-Id: <20220120182200.152835-1-thuth@redhat.com> Acked-by: Claudio Imbrenda <imbrenda@linux.ibm.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
#
41c0f78c |
| 02-Apr-2020 |
Eric Auger <eric.auger@redhat.com> |
arm/run: Allow Migration tests
Let's link getchar.o to use puts and getchar from the tests.
Then allow tests belonging to the migration group to trigger the migration from the test code by putting
arm/run: Allow Migration tests
Let's link getchar.o to use puts and getchar from the tests.
Then allow tests belonging to the migration group to trigger the migration from the test code by putting "migrate" into the uart. Then the code can wait for the migration completion by using getchar().
The __getchar implement is minimalist as it just reads the data register. It is just meant to read the single character emitted at the end of the migration by the runner script.
It is not meant to read more data (FIFOs are not enabled).
Signed-off-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Andrew Jones <drjones@redhat.com>
show more ...
|
#
1f0a5c19 |
| 17-Jul-2018 |
Andrew Jones <drjones@redhat.com> |
arm/arm64: fix pci-test
The latest machine type for mach-virt now uses a highmem address range for ecam space. For arm64 fixup our memory mapping in order to allow pci-test to access it. For arm, ju
arm/arm64: fix pci-test
The latest machine type for mach-virt now uses a highmem address range for ecam space. For arm64 fixup our memory mapping in order to allow pci-test to access it. For arm, just use the highmem=off machine property to keep the ecam space in lowmem.
Signed-off-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
f4d99928 |
| 29-Jun-2017 |
Radim Krčmář <rkrcmar@redhat.com> |
arch/run: unify accelerator detection
Use the same mechanism as search_qemu_binary().
The simplified [ "$HOST" = "$ARCH_NAME" ] check will mishandle a case if you compile for $arch on $arch then tr
arch/run: unify accelerator detection
Use the same mechanism as search_qemu_binary().
The simplified [ "$HOST" = "$ARCH_NAME" ] check will mishandle a case if you compile for $arch on $arch then try to run it with $other_arch/run, but that isn't really worth checking.
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> Message-Id: <20170629142824.13666-1-rkrcmar@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|