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/ David Matlack (9): KVM: selftests: Replace x86_page_size with raw levels 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: 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 tools/testing/selftests/kvm/Makefile | 50 +++++-- .../selftests/kvm/dirty_log_perf_test.c | 10 +- .../selftests/kvm/include/perf_test_util.h | 5 + .../selftests/kvm/include/x86_64/processor.h | 17 +-- .../selftests/kvm/include/x86_64/vmx.h | 5 + .../selftests/kvm/lib/perf_test_util.c | 13 +- .../selftests/kvm/lib/x86_64/perf_test_util.c | 89 +++++++++++ .../selftests/kvm/lib/x86_64/processor.c | 27 ++-- tools/testing/selftests/kvm/lib/x86_64/vmx.c | 140 +++++++++++------- .../selftests/kvm/max_guest_memory_test.c | 2 +- .../selftests/kvm/x86_64/mmu_role_test.c | 2 +- 11 files changed, 262 insertions(+), 98 deletions(-) create mode 100644 tools/testing/selftests/kvm/lib/x86_64/perf_test_util.c base-commit: 84e5ffd045f33e4fa32370135436d987478d0bf7 -- 2.36.0.464.gb9c8b46e94-goog