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 >