• Marco Elver's avatar
    kcsan: Improve IRQ state trace reporting · 92c209ac
    Marco Elver authored
    To improve the general usefulness of the IRQ state trace events with
    KCSAN enabled, save and restore the trace information when entering and
    exiting the KCSAN runtime as well as when generating a KCSAN report.
    
    Without this, reporting the IRQ trace events (whether via a KCSAN report
    or outside of KCSAN via a lockdep report) is rather useless due to
    continuously being touched by KCSAN. This is because if KCSAN is
    enabled, every instrumented memory access causes changes to IRQ trace
    events (either by KCSAN disabling/enabling interrupts or taking
    report_lock when generating a report).
    
    Before "lockdep: Prepare for NMI IRQ state tracking", KCSAN avoided
    touching the IRQ trace events via raw_local_irq_save/restore() and
    lockdep_off/on().
    
    Fixes: 248591f5 ("kcsan: Make KCSAN compatible with new IRQ state tracking")
    Signed-off-by: default avatarMarco Elver <elver@google.com>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Link: https://lore.kernel.org/r/20200729110916.3920464-2-elver@google.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    92c209ac
kcsan.h 3.37 KB