Skip to content

KVM: selftests: replace assertion with warning in access_tracking_perf_test

KVM: selftests: replace assertion with warning in access_tracking_perf_test

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2118584

    
    commit 6336a810db5c7e8e48b55b12fbb5e9cbd36a3d19
    Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
    Date:   Mon Sep 26 04:29:23 2022 -0400
    
        KVM: selftests: replace assertion with warning in access_tracking_perf_test
    
        Page_idle uses {ptep/pmdp}_clear_young_notify which in turn calls
        the mmu notifier callback ->clear_young(), which purposefully
        does not flush the TLB.
    
        When running the test in a nested guest, point 1. of the test
        doc header is violated, because KVM TLB is unbounded by size
        and since no flush is forced, KVM does not update the sptes
        accessed/idle bits resulting in guest assertion failure.
    
        More precisely, only the first ACCESS_WRITE in run_test() actually
        makes visible changes, because sptes are created and the accessed
        bit is set to 1 (or idle bit is 0). Then the first mark_memory_idle()
        passes since access bit is still one, and sets all pages as idle
        (or not accessed). When the next write is performed, the update
        is not flushed therefore idle is still 1 and next mark_memory_idle()
        fails.
    
        Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
        Message-Id: <20220926082923.299554-1-eesposit@redhat.com>
        Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
 

Signed-off-by: Emanuele Giuseppe Esposito eesposit@redhat.com

Edited by Emanuele Giuseppe Esposito

Merge request reports