This series adds support for taking any perf_test_util-based test and configuring it to run vCPUs in L2 instead of L1, and adds an option to dirty_log_perf_test to enable it. This series was used to collect the performance data for eager page spliting for nested MMUs [1]. [1] https://lore.kernel.org/kvm/20220422210546.458943-1-dmatlack@xxxxxxxxxx/ v4: - Add patch 11 to support for hosts with MAXPHYADDR > 48 [Sean] v3: https://lore.kernel.org/kvm/20220520215723.3270205-1-dmatlack@xxxxxxxxxx/ - Only identity map a subset of the nGPA space [Sean, Peter] - Fail if nested_paddr contains more than 48 bits [me] - Move patch to delete all rule earlier [Peter] v2: https://lore.kernel.org/kvm/20220517190524.2202762-1-dmatlack@xxxxxxxxxx/ - Collect R-b tags from Peter. - Use level macros instead of raw numbers [Peter] - Remove "upper" from function name [Peter] - Bring back setting the A/D bits on EPT PTEs [Peter] - Drop "all" rule from Makefile [Peter] - Reserve memory for EPT pages [Peter] - Fix off-by-one error in nested_map_all_1g() [me] v1: https://lore.kernel.org/kvm/20220429183935.1094599-1-dmatlack@xxxxxxxxxx/ David Matlack (11): KVM: selftests: Replace x86_page_size with PG_LEVEL_XX KVM: selftests: Add option to create 2M and 1G EPT mappings KVM: selftests: Drop stale function parameter comment for nested_map() KVM: selftests: Refactor nested_map() to specify target level KVM: selftests: Move VMX_EPT_VPID_CAP_AD_BITS to vmx.h KVM: selftests: Add a helper to check EPT/VPID capabilities KVM: selftests: Drop unnecessary rule for STATIC_LIBS KVM: selftests: Link selftests directly with lib object files KVM: selftests: Clean up LIBKVM files in Makefile KVM: selftests: Add option to run dirty_log_perf_test vCPUs in L2 KVM: selftests: Restrict test region to 48-bit physical addresses when using nested tools/testing/selftests/kvm/Makefile | 49 ++++-- .../selftests/kvm/dirty_log_perf_test.c | 10 +- .../selftests/kvm/include/perf_test_util.h | 9 ++ .../selftests/kvm/include/x86_64/processor.h | 25 +-- .../selftests/kvm/include/x86_64/vmx.h | 6 + .../selftests/kvm/lib/perf_test_util.c | 53 ++++++- .../selftests/kvm/lib/x86_64/perf_test_util.c | 112 +++++++++++++ .../selftests/kvm/lib/x86_64/processor.c | 33 ++-- tools/testing/selftests/kvm/lib/x86_64/vmx.c | 149 +++++++++++------- .../selftests/kvm/max_guest_memory_test.c | 2 +- .../selftests/kvm/x86_64/mmu_role_test.c | 2 +- 11 files changed, 343 insertions(+), 107 deletions(-) create mode 100644 tools/testing/selftests/kvm/lib/x86_64/perf_test_util.c base-commit: a3808d88461270c71d3fece5e51cc486ecdac7d0 -- 2.36.1.124.g0e6072fb45-goog