Message ID | 20241214010721.2356923-14-seanjc@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [01/20] KVM: selftests: Support multiple write retires in dirty_log_test | expand |
On Fri, 2024-12-13 at 17:07 -0800, Sean Christopherson wrote: > Print out the last dirty pages from the current and previous iteration on > verification failures. In many cases, bugs (especially test bugs) occur > on the edges, i.e. on or near the last pages, and being able to correlate > failures with the last pages can aid in debug. > > Signed-off-by: Sean Christopherson <seanjc@google.com> > --- > tools/testing/selftests/kvm/dirty_log_test.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c > index d7cf1840bd80..fe8cc7f77e22 100644 > --- a/tools/testing/selftests/kvm/dirty_log_test.c > +++ b/tools/testing/selftests/kvm/dirty_log_test.c > @@ -566,8 +566,10 @@ static void vm_dirty_log_verify(enum vm_guest_mode mode, unsigned long *bmap) > } > } > > - TEST_FAIL("Dirty page %lu value (%lu) != iteration (%lu)", > - page, val, iteration); > + TEST_FAIL("Dirty page %lu value (%lu) != iteration (%lu) " > + "(last = %lu, prev_last = %lu)", > + page, val, iteration, dirty_ring_last_page, > + dirty_ring_prev_iteration_last_page); > } else { > nr_clean_pages++; > /* > @@ -590,9 +592,10 @@ static void vm_dirty_log_verify(enum vm_guest_mode mode, unsigned long *bmap) > * value "iteration-1". > */ > TEST_ASSERT(val <= iteration, > - "Clear page %"PRIu64" value %"PRIu64 > - " incorrect (iteration=%"PRIu64")", > - page, val, iteration); > + "Clear page %lu value (%lu) > iteration (%lu) " > + "(last = %lu, prev_last = %lu)", > + page, val, iteration, dirty_ring_last_page, > + dirty_ring_prev_iteration_last_page); > if (val == iteration) { > /* > * This page is _just_ modified; it Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c index d7cf1840bd80..fe8cc7f77e22 100644 --- a/tools/testing/selftests/kvm/dirty_log_test.c +++ b/tools/testing/selftests/kvm/dirty_log_test.c @@ -566,8 +566,10 @@ static void vm_dirty_log_verify(enum vm_guest_mode mode, unsigned long *bmap) } } - TEST_FAIL("Dirty page %lu value (%lu) != iteration (%lu)", - page, val, iteration); + TEST_FAIL("Dirty page %lu value (%lu) != iteration (%lu) " + "(last = %lu, prev_last = %lu)", + page, val, iteration, dirty_ring_last_page, + dirty_ring_prev_iteration_last_page); } else { nr_clean_pages++; /* @@ -590,9 +592,10 @@ static void vm_dirty_log_verify(enum vm_guest_mode mode, unsigned long *bmap) * value "iteration-1". */ TEST_ASSERT(val <= iteration, - "Clear page %"PRIu64" value %"PRIu64 - " incorrect (iteration=%"PRIu64")", - page, val, iteration); + "Clear page %lu value (%lu) > iteration (%lu) " + "(last = %lu, prev_last = %lu)", + page, val, iteration, dirty_ring_last_page, + dirty_ring_prev_iteration_last_page); if (val == iteration) { /* * This page is _just_ modified; it
Print out the last dirty pages from the current and previous iteration on verification failures. In many cases, bugs (especially test bugs) occur on the edges, i.e. on or near the last pages, and being able to correlate failures with the last pages can aid in debug. Signed-off-by: Sean Christopherson <seanjc@google.com> --- tools/testing/selftests/kvm/dirty_log_test.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)