On Wed, Feb 10, 2021 at 3:06 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > Remove perf_test_args.host_page_size and instead use getpagesize() so > that it's somewhat obvious that, for tests that care about the host page > size, they care about the system page size, not the hardware page size, > e.g. that the logic is unchanged if hugepages are in play. > > No functional change intended. > > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> Reviewed-by: Ben Gardon <bgardon@xxxxxxxxxx> > --- > tools/testing/selftests/kvm/demand_paging_test.c | 8 ++++---- > tools/testing/selftests/kvm/include/perf_test_util.h | 1 - > tools/testing/selftests/kvm/lib/perf_test_util.c | 6 ++---- > .../selftests/kvm/memslot_modification_stress_test.c | 2 +- > 4 files changed, 7 insertions(+), 10 deletions(-) > > diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c > index 0cbf111e6c21..b937a65b0e6d 100644 > --- a/tools/testing/selftests/kvm/demand_paging_test.c > +++ b/tools/testing/selftests/kvm/demand_paging_test.c > @@ -83,7 +83,7 @@ static int handle_uffd_page_request(int uffd, uint64_t addr) > > copy.src = (uint64_t)guest_data_prototype; > copy.dst = addr; > - copy.len = perf_test_args.host_page_size; > + copy.len = getpagesize(); > copy.mode = 0; > > clock_gettime(CLOCK_MONOTONIC, &start); > @@ -100,7 +100,7 @@ static int handle_uffd_page_request(int uffd, uint64_t addr) > PER_PAGE_DEBUG("UFFDIO_COPY %d \t%ld ns\n", tid, > timespec_to_ns(ts_diff)); > PER_PAGE_DEBUG("Paged in %ld bytes at 0x%lx from thread %d\n", > - perf_test_args.host_page_size, addr, tid); > + getpagesize(), addr, tid); > > return 0; > } > @@ -271,10 +271,10 @@ static void run_test(enum vm_guest_mode mode, void *arg) > > perf_test_args.wr_fract = 1; > > - guest_data_prototype = malloc(perf_test_args.host_page_size); > + guest_data_prototype = malloc(getpagesize()); > TEST_ASSERT(guest_data_prototype, > "Failed to allocate buffer for guest data pattern"); > - memset(guest_data_prototype, 0xAB, perf_test_args.host_page_size); > + memset(guest_data_prototype, 0xAB, getpagesize()); > > vcpu_threads = malloc(nr_vcpus * sizeof(*vcpu_threads)); > TEST_ASSERT(vcpu_threads, "Memory allocation failed"); > diff --git a/tools/testing/selftests/kvm/include/perf_test_util.h b/tools/testing/selftests/kvm/include/perf_test_util.h > index cccf1c44bddb..223fe6b79a04 100644 > --- a/tools/testing/selftests/kvm/include/perf_test_util.h > +++ b/tools/testing/selftests/kvm/include/perf_test_util.h > @@ -28,7 +28,6 @@ struct perf_test_vcpu_args { > > struct perf_test_args { > struct kvm_vm *vm; > - uint64_t host_page_size; > uint64_t gpa; > uint64_t guest_page_size; > int wr_fract; > diff --git a/tools/testing/selftests/kvm/lib/perf_test_util.c b/tools/testing/selftests/kvm/lib/perf_test_util.c > index 03f125236021..982a86c8eeaa 100644 > --- a/tools/testing/selftests/kvm/lib/perf_test_util.c > +++ b/tools/testing/selftests/kvm/lib/perf_test_util.c > @@ -57,8 +57,6 @@ struct kvm_vm *perf_test_create_vm(enum vm_guest_mode mode, int vcpus, > > pr_info("Testing guest mode: %s\n", vm_guest_mode_string(mode)); > > - pta->host_page_size = getpagesize(); > - > /* > * Snapshot the non-huge page size. This is used by the guest code to > * access/dirty pages at the logging granularity. > @@ -68,7 +66,7 @@ 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); > > - TEST_ASSERT(vcpu_memory_bytes % pta->host_page_size == 0, > + TEST_ASSERT(vcpu_memory_bytes % getpagesize() == 0, > "Guest memory size is not host page size aligned."); > TEST_ASSERT(vcpu_memory_bytes % pta->guest_page_size == 0, > "Guest memory size is not guest page size aligned."); > @@ -88,7 +86,7 @@ struct kvm_vm *perf_test_create_vm(enum vm_guest_mode mode, int vcpus, > guest_num_pages, vm_get_max_gfn(vm), vcpus, vcpu_memory_bytes); > > pta->gpa = (vm_get_max_gfn(vm) - guest_num_pages) * pta->guest_page_size; > - pta->gpa &= ~(pta->host_page_size - 1); > + pta->gpa &= ~(getpagesize() - 1); > if (backing_src == VM_MEM_SRC_ANONYMOUS_THP || > backing_src == VM_MEM_SRC_ANONYMOUS_HUGETLB) > pta->gpa &= ~(KVM_UTIL_HUGEPAGE_ALIGNMENT - 1); > diff --git a/tools/testing/selftests/kvm/memslot_modification_stress_test.c b/tools/testing/selftests/kvm/memslot_modification_stress_test.c > index 569bb1f55bdf..b3b8f08e91ad 100644 > --- a/tools/testing/selftests/kvm/memslot_modification_stress_test.c > +++ b/tools/testing/selftests/kvm/memslot_modification_stress_test.c > @@ -123,7 +123,7 @@ static void run_test(enum vm_guest_mode mode, void *arg) > p->nr_memslot_modifications, > perf_test_args.gpa + > (guest_percpu_mem_size * nr_vcpus) + > - perf_test_args.host_page_size + > + getpagesize() + > perf_test_args.guest_page_size); > > run_vcpus = false; > -- > 2.30.0.478.g8a0d178c01-goog >