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

From: David Matlack
Date: Tue Mar 14 2023 - 12:00:59 EST


On Tue, Mar 14, 2023 at 7:23 AM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>
> On Tue, Mar 14, 2023 at 2:27 PM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
> > I have finally queued it, but made a small change to allow running it
> > with non-hugetlbfs page types.
>
> Oops, it fails on my AMD workstation:
>
> $ tools/testing/selftests/kvm/x86_64/dirty_log_page_splitting_test
> Testing guest mode: PA-bits:ANY, VA-bits:48, 4K pages
> guest physical test memory: [0x7fc7fe00000, 0x7fcffe00000)
> ==== Test Assertion Failure ====
> x86_64/dirty_log_page_splitting_test.c:195: __a == __b
> pid=1378203 tid=1378203 errno=0 - Success
> 1 0x0000000000402d02: run_test at dirty_log_page_splitting_test.c:195
> 2 0x000000000040367c: for_each_guest_mode at guest_modes.c:100
> 3 0x00000000004024df: main at dirty_log_page_splitting_test.c:245
> 4 0x00007f4227c3feaf: ?? ??:0
> 5 0x00007f4227c3ff5f: ?? ??:0
> 6 0x0000000000402594: _start at ??:?
> ASSERT_EQ(stats_populated.pages_4k, stats_repopulated.pages_4k) failed.
> stats_populated.pages_4k is 0x413
> stats_repopulated.pages_4k is 0x412
>
> Haven't debugged it yet.

I wonder if pages are getting swapped, especially if running on a
workstation. If so, mlock()ing all guest memory VMAs might be
necessary to be able to assert exact page counts.

>
> Paolo
>