Fix hugepage bugs in the KVM selftests that specifically affect dirty logging and demand paging tests. Found while attempting to verify KVM changes/fixes related to hugepages and dirty logging (patches incoming in a separate series). Clean up the perf_test_args util on top of the hugepage fixes to clarify what "page size" means, and to improve confidence in the code doing what it thinks it's doing. In a few cases, users of perf_test_args were duplicating (approximating?) calculations made by perf_test_args, and it wasn't obvious that both pieces of code were guaranteed to end up with the same result. v2: - Add separate align up/down helpers and use the throughout the series rather than openly coding the bitwise math [Ben, Paolo] - Do no pad HugeTLB mmaps [Yanan] - Drop "[PATCH 04/15] KVM: selftests: Force stronger HVA alignment (1gb) for hugepages" since HugeTLB does not require manual HVA alignment [David] - Drop "[PATCH 15/15] KVM: selftests: Get rid of gorilla math in memslots modification test" since the gorilla math no longer exists [David] - Drop "[PATCH 14/15] KVM: selftests: Track size of per-VM memslot in perf_test_args" since it was just a prep patch for [PATCH 15/15] [David] - Update the series to kvm/next [David] v1: https://lore.kernel.org/kvm/20210210230625.550939-1-seanjc@xxxxxxxxxx/. Sean Christopherson (12): KVM: selftests: Explicitly state indicies for vm_guest_mode_params array KVM: selftests: Expose align() helpers to tests KVM: selftests: Assert mmap HVA is aligned when using HugeTLB KVM: selftests: Require GPA to be aligned when backed by hugepages KVM: selftests: Use shorthand local var to access struct perf_tests_args KVM: selftests: Capture per-vCPU GPA in perf_test_vcpu_args KVM: selftests: Use perf util's per-vCPU GPA/pages in demand paging test KVM: selftests: Move per-VM GPA into perf_test_args KVM: selftests: Remove perf_test_args.host_page_size KVM: selftests: Create VM with adjusted number of guest pages for perf tests KVM: selftests: Fill per-vCPU struct during "perf_test" VM creation KVM: selftests: Sync perf_test_args to guest during VM creation .../selftests/kvm/access_tracking_perf_test.c | 8 +- .../selftests/kvm/demand_paging_test.c | 31 +---- .../selftests/kvm/dirty_log_perf_test.c | 10 +- tools/testing/selftests/kvm/dirty_log_test.c | 6 +- .../selftests/kvm/include/perf_test_util.h | 18 +-- .../testing/selftests/kvm/include/test_util.h | 26 ++++ .../selftests/kvm/kvm_page_table_test.c | 2 +- tools/testing/selftests/kvm/lib/elf.c | 3 +- tools/testing/selftests/kvm/lib/kvm_util.c | 44 +++--- .../selftests/kvm/lib/perf_test_util.c | 126 ++++++++++-------- tools/testing/selftests/kvm/lib/test_util.c | 5 + .../kvm/memslot_modification_stress_test.c | 13 +- 12 files changed, 153 insertions(+), 139 deletions(-) -- 2.34.0.rc1.387.gb447b232ab-goog