On Tue, Mar 14, 2023 at 5:00 PM David Matlack <dmatlack@xxxxxxxxxx> wrote: > On Tue, Mar 14, 2023 at 7:23 AM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > $ 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 > > 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. I don't think so, it's 100% reproducible and the machine is idle and only accessed via network. Also has 64 GB of RAM. :) Paolo