[PATCH 2/5] KVM: selftests: Initialise default mode in each test
Marc Zyngier
maz at kernel.org
Thu Dec 16 04:31:32 PST 2021
As we are going to add support for a variable default mode on arm64,
let's make sure it is setup first by sprinkling a number of calls
to get_modes_append_default() when the test starts.
Signed-off-by: Marc Zyngier <maz at kernel.org>
---
tools/testing/selftests/kvm/aarch64/arch_timer.c | 3 +++
tools/testing/selftests/kvm/aarch64/debug-exceptions.c | 3 +++
tools/testing/selftests/kvm/aarch64/get-reg-list.c | 3 +++
tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c | 3 +++
tools/testing/selftests/kvm/aarch64/vgic_init.c | 3 +++
tools/testing/selftests/kvm/kvm_binary_stats_test.c | 3 +++
tools/testing/selftests/kvm/kvm_create_max_vcpus.c | 3 +++
tools/testing/selftests/kvm/memslot_perf_test.c | 4 ++++
tools/testing/selftests/kvm/rseq_test.c | 3 +++
tools/testing/selftests/kvm/set_memory_region_test.c | 4 ++++
tools/testing/selftests/kvm/steal_time.c | 3 +++
11 files changed, 35 insertions(+)
diff --git a/tools/testing/selftests/kvm/aarch64/arch_timer.c b/tools/testing/selftests/kvm/aarch64/arch_timer.c
index bf6a45b0b8dc..22f5b1d85135 100644
--- a/tools/testing/selftests/kvm/aarch64/arch_timer.c
+++ b/tools/testing/selftests/kvm/aarch64/arch_timer.c
@@ -35,6 +35,7 @@
#include "arch_timer.h"
#include "gic.h"
#include "vgic.h"
+#include "guest_modes.h"
#define NR_VCPUS_DEF 4
#define NR_TEST_ITERS_DEF 5
@@ -460,6 +461,8 @@ int main(int argc, char *argv[])
{
struct kvm_vm *vm;
+ guest_modes_append_default();
+
/* Tell stdout not to buffer its content */
setbuf(stdout, NULL);
diff --git a/tools/testing/selftests/kvm/aarch64/debug-exceptions.c b/tools/testing/selftests/kvm/aarch64/debug-exceptions.c
index ea189d83abf7..26fd0a87a5dc 100644
--- a/tools/testing/selftests/kvm/aarch64/debug-exceptions.c
+++ b/tools/testing/selftests/kvm/aarch64/debug-exceptions.c
@@ -2,6 +2,7 @@
#include <test_util.h>
#include <kvm_util.h>
#include <processor.h>
+#include <guest_modes.h>
#define VCPU_ID 0
@@ -200,6 +201,8 @@ int main(int argc, char *argv[])
struct ucall uc;
int stage;
+ guest_modes_append_default();
+
vm = vm_create_default(VCPU_ID, 0, guest_code);
ucall_init(vm, NULL);
diff --git a/tools/testing/selftests/kvm/aarch64/get-reg-list.c b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
index cc898181faab..f97932439f90 100644
--- a/tools/testing/selftests/kvm/aarch64/get-reg-list.c
+++ b/tools/testing/selftests/kvm/aarch64/get-reg-list.c
@@ -33,6 +33,7 @@
#include "kvm_util.h"
#include "test_util.h"
#include "processor.h"
+#include "guest_modes.h"
static struct kvm_reg_list *reg_list;
static __u64 *blessed_reg, blessed_n;
@@ -588,6 +589,8 @@ int main(int ac, char **av)
int i, ret = 0;
pid_t pid;
+ guest_modes_append_default();
+
for (i = 1; i < ac; ++i) {
if (strcmp(av[i], "--core-reg-fixup") == 0)
fixup_core_regs = true;
diff --git a/tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c b/tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
index 4c5f6814030f..94f951b0edcb 100644
--- a/tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
+++ b/tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
@@ -16,6 +16,7 @@
#include "kvm_util.h"
#include "processor.h"
#include "test_util.h"
+#include "guest_modes.h"
#define VCPU_ID_SOURCE 0
#define VCPU_ID_TARGET 1
@@ -76,6 +77,8 @@ int main(void)
struct kvm_vm *vm;
struct ucall uc;
+ guest_modes_append_default();
+
vm = vm_create(VM_MODE_DEFAULT, DEFAULT_GUEST_PHY_PAGES, O_RDWR);
kvm_vm_elf_load(vm, program_invocation_name);
ucall_init(vm, NULL);
diff --git a/tools/testing/selftests/kvm/aarch64/vgic_init.c b/tools/testing/selftests/kvm/aarch64/vgic_init.c
index 34379c98d2f4..f2c235453aa9 100644
--- a/tools/testing/selftests/kvm/aarch64/vgic_init.c
+++ b/tools/testing/selftests/kvm/aarch64/vgic_init.c
@@ -14,6 +14,7 @@
#include "kvm_util.h"
#include "processor.h"
#include "vgic.h"
+#include "guest_modes.h"
#define NR_VCPUS 4
@@ -699,6 +700,8 @@ int main(int ac, char **av)
int ret;
int pa_bits;
+ guest_modes_append_default();
+
pa_bits = vm_guest_mode_params[VM_MODE_DEFAULT].pa_bits;
max_phys_size = 1ULL << pa_bits;
diff --git a/tools/testing/selftests/kvm/kvm_binary_stats_test.c b/tools/testing/selftests/kvm/kvm_binary_stats_test.c
index 17f65d514915..0dc30a7ba0b3 100644
--- a/tools/testing/selftests/kvm/kvm_binary_stats_test.c
+++ b/tools/testing/selftests/kvm/kvm_binary_stats_test.c
@@ -17,6 +17,7 @@
#include "test_util.h"
#include "kvm_util.h"
+#include "guest_modes.h"
#include "asm/kvm.h"
#include "linux/kvm.h"
@@ -207,6 +208,8 @@ int main(int argc, char *argv[])
int max_vm = DEFAULT_NUM_VM;
int max_vcpu = DEFAULT_NUM_VCPU;
+ guest_modes_append_default();
+
/* Get the number of VMs and VCPUs that would be created for testing. */
if (argc > 1) {
max_vm = strtol(argv[1], NULL, 0);
diff --git a/tools/testing/selftests/kvm/kvm_create_max_vcpus.c b/tools/testing/selftests/kvm/kvm_create_max_vcpus.c
index aed9dc3ca1e9..7068a9f14d0c 100644
--- a/tools/testing/selftests/kvm/kvm_create_max_vcpus.c
+++ b/tools/testing/selftests/kvm/kvm_create_max_vcpus.c
@@ -17,6 +17,7 @@
#include "test_util.h"
#include "kvm_util.h"
+#include "guest_modes.h"
#include "asm/kvm.h"
#include "linux/kvm.h"
@@ -51,6 +52,8 @@ int main(int argc, char *argv[])
pr_info("KVM_CAP_MAX_VCPU_ID: %d\n", kvm_max_vcpu_id);
pr_info("KVM_CAP_MAX_VCPUS: %d\n", kvm_max_vcpus);
+ guest_modes_append_default();
+
/*
* Check that we're allowed to open nr_fds_wanted file descriptors and
* try raising the limits if needed.
diff --git a/tools/testing/selftests/kvm/memslot_perf_test.c b/tools/testing/selftests/kvm/memslot_perf_test.c
index 1727f75e0c2c..ef4ffce5d170 100644
--- a/tools/testing/selftests/kvm/memslot_perf_test.c
+++ b/tools/testing/selftests/kvm/memslot_perf_test.c
@@ -25,6 +25,8 @@
#include <kvm_util.h>
#include <processor.h>
+#include "guest_modes.h"
+
#define VCPU_ID 0
#define MEM_SIZE ((512U << 20) + 4096)
@@ -1015,6 +1017,8 @@ int main(int argc, char *argv[])
if (!parse_args(argc, argv, &targs))
return -1;
+ guest_modes_append_default();
+
rbestslottime.slottimens = 0;
for (tctr = targs.tfirst; tctr <= targs.tlast; tctr++) {
const struct test_data *data = &tests[tctr];
diff --git a/tools/testing/selftests/kvm/rseq_test.c b/tools/testing/selftests/kvm/rseq_test.c
index 4158da0da2bb..d2440fc72f0d 100644
--- a/tools/testing/selftests/kvm/rseq_test.c
+++ b/tools/testing/selftests/kvm/rseq_test.c
@@ -19,6 +19,7 @@
#include "kvm_util.h"
#include "processor.h"
#include "test_util.h"
+#include "guest_modes.h"
#define VCPU_ID 0
@@ -223,6 +224,8 @@ int main(int argc, char *argv[])
sys_rseq(0);
+ guest_modes_append_default();
+
/*
* Create and run a dummy VM that immediately exits to userspace via
* GUEST_SYNC, while concurrently migrating the process by setting its
diff --git a/tools/testing/selftests/kvm/set_memory_region_test.c b/tools/testing/selftests/kvm/set_memory_region_test.c
index 72a1c9b4882c..ff4cc7e796e7 100644
--- a/tools/testing/selftests/kvm/set_memory_region_test.c
+++ b/tools/testing/selftests/kvm/set_memory_region_test.c
@@ -17,6 +17,8 @@
#include <kvm_util.h>
#include <processor.h>
+#include "guest_modes.h"
+
#define VCPU_ID 0
/*
@@ -413,6 +415,8 @@ int main(int argc, char *argv[])
int i, loops;
#endif
+ guest_modes_append_default();
+
/* Tell stdout not to buffer its content */
setbuf(stdout, NULL);
diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c
index 62f2eb9ee3d5..5200044f572d 100644
--- a/tools/testing/selftests/kvm/steal_time.c
+++ b/tools/testing/selftests/kvm/steal_time.c
@@ -16,6 +16,7 @@
#include "test_util.h"
#include "kvm_util.h"
#include "processor.h"
+#include "guest_modes.h"
#define NR_VCPUS 4
#define ST_GPA_BASE (1 << 30)
@@ -273,6 +274,8 @@ int main(int ac, char **av)
pthread_attr_setaffinity_np(&attr, sizeof(cpu_set_t), &cpuset);
pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
+ guest_modes_append_default();
+
/* Create a one VCPU guest and an identity mapped memslot for the steal time structure */
vm = vm_create_default(0, 0, guest_code);
gpages = vm_calc_num_guest_pages(VM_MODE_DEFAULT, STEAL_TIME_SIZE * NR_VCPUS);
--
2.30.2
More information about the linux-arm-kernel
mailing list