@@ -30,6 +30,7 @@ struct perf_test_args {
struct kvm_vm *vm;
uint64_t gpa;
uint64_t guest_page_size;
+ uint64_t nr_bytes;
int wr_fract;
struct perf_test_vcpu_args vcpu_args[KVM_MAX_VCPUS];
@@ -80,8 +80,6 @@ static void perf_test_setup_vcpus(struct kvm_vm *vm, int vcpus,
}
}
-
-
struct kvm_vm *perf_test_create_vm(enum vm_guest_mode mode, int vcpus,
uint64_t vcpu_memory_bytes,
enum vm_mem_backing_src_type backing_src,
@@ -104,7 +102,11 @@ struct kvm_vm *perf_test_create_vm(enum vm_guest_mode mode, int vcpus,
guest_num_pages = vm_adjust_num_guest_pages(mode,
(vcpus * vcpu_memory_bytes) / pta->guest_page_size);
- vcpu_memory_bytes = (guest_num_pages * pta->guest_page_size) / vcpus;
+ pta->nr_bytes = guest_num_pages * pta->guest_page_size;
+
+ TEST_ASSERT(pta->nr_bytes % vcpus == 0,
+ "Guest pages adjustment yielded a weird number of pages.");
+ vcpu_memory_bytes = pta->nr_bytes / vcpus;
TEST_ASSERT(vcpu_memory_bytes % getpagesize() == 0,
"Guest memory size is not host page size aligned.");
Capture the final size of the dedicated memslot created by perf_test_args so that tests don't have to try and guesstimate the final result. This will be used by the memslots modification test to remove some truly mind-boggling code. No functional change intended. Signed-off-by: Sean Christopherson <seanjc@google.com> --- tools/testing/selftests/kvm/include/perf_test_util.h | 1 + tools/testing/selftests/kvm/lib/perf_test_util.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-)