Re: [PATCH v4 0/2] selftests: KVM: Add a test for eager page splitting

From: Vipin Sharma
Date: Thu Jan 26 2023 - 15:09:54 EST


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
>