KVM: selftests: Assign guest page size in sync area early in memslot_perf_test
authorGavin Shan <gshan@redhat.com>
Wed, 18 Jan 2023 09:21:33 +0000 (17:21 +0800)
committerSean Christopherson <seanjc@google.com>
Tue, 7 Feb 2023 23:44:19 +0000 (15:44 -0800)
The guest page size in the synchronization area is needed by all test
cases. So it's reasonable to set it in the unified preparation function
(prepare_vm()).

Signed-off-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Link: https://lore.kernel.org/r/20230118092133.320003-3-gshan@redhat.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/memslot_perf_test.c

index adbbcca..4210cd2 100644 (file)
@@ -347,6 +347,7 @@ static bool prepare_vm(struct vm_data *data, int nslots, uint64_t *maxslots,
        virt_map(data->vm, MEM_GPA, MEM_GPA, data->npages);
 
        sync = (typeof(sync))vm_gpa2hva(data, MEM_SYNC_GPA, NULL);
+       sync->guest_page_size = data->vm->page_size;
        atomic_init(&sync->start_flag, false);
        atomic_init(&sync->exit_flag, false);
        atomic_init(&sync->sync_flag, false);
@@ -808,8 +809,6 @@ static bool test_execute(int nslots, uint64_t *maxslots,
        }
 
        sync = (typeof(sync))vm_gpa2hva(data, MEM_SYNC_GPA, NULL);
-
-       sync->guest_page_size = data->vm->page_size;
        if (tdata->prepare &&
            !tdata->prepare(data, sync, maxslots)) {
                ret = false;