On Wed, Jan 25, 2023 at 10:23 AM Ben Gardon <bgardon@xxxxxxxxxx> wrote: > > David Matlack recently added a feature known as eager page splitting > to x86 KVM. This feature improves vCPU performance during dirty > logging because the splitting operation is moved out of the page > fault path, avoiding EPT/NPT violations or allowing the vCPU threads > to resolve the violation in the fast path. > > While this feature is a great performance improvement, it does not > have adequate testing in KVM selftests. Add a test to provide coverage > of eager page splitting. > > Patch 1 is a quick refactor to be able to re-use some code from > dirty_log_perf_test. > Patch 2 adds the actual test. > > V1->V2: Links of previous versions of patches are helpful and avoid searching if one wants to read previous discussions. > Run test in multiple modes, as suggested by David and Ricardo > Cleanups from shameful copy-pasta, as suggested by David > V2->V3: > Removed copyright notice from the top of > dirty_log_page_splitting.c > Adopted ASSERT_EQ for test assertions > Now skipping testing with MANUAL_PROTECT if unsupported > V3->V4: > Added the copyright notices back. Thanks Vipin for the right > thing to do there. > > Ben Gardon (2): > selftests: KVM: Move dirty logging functions to memstress.(c|h) > selftests: KVM: Add dirty logging page splitting test > > tools/testing/selftests/kvm/Makefile | 1 + > .../selftests/kvm/dirty_log_perf_test.c | 84 +----- > .../selftests/kvm/include/kvm_util_base.h | 1 + > .../testing/selftests/kvm/include/memstress.h | 8 + > tools/testing/selftests/kvm/lib/kvm_util.c | 5 + > tools/testing/selftests/kvm/lib/memstress.c | 72 +++++ > .../x86_64/dirty_log_page_splitting_test.c | 257 ++++++++++++++++++ > 7 files changed, 351 insertions(+), 77 deletions(-) > create mode 100644 tools/testing/selftests/kvm/x86_64/dirty_log_page_splitting_test.c > > -- > 2.39.1.456.gfc5497dd1b-goog >