• Steven Rostedt's avatar
    ftrace/x86: Remove the complex ftrace NMI handling code · 4a6d70c9
    Steven Rostedt authored
    As ftrace function tracing would require modifying code that could
    be executed in NMI context, which is not stopped with stop_machine(),
    ftrace had to do a complex algorithm with various stages of setup
    and memory barriers to make it work.
    
    With the new breakpoint method, this is no longer required. The changes
    to the code can be done without any problem in NMI context, as well as
    without stop machine altogether. Remove the complex code as it is
    no longer needed.
    
    Also, a lot of the notrace annotations could be removed from the
    NMI code as it is now safe to trace them. With the exception of
    do_nmi itself, which does some special work to handle running in
    the debug stack. The breakpoint method can cause NMIs to double
    nest the debug stack if it's not setup properly, and that is done
    in do_nmi(), thus that function must not be traced.
    
    (Note the arch sh may want to do the same)
    
    Cc: Paul Mundt <lethal@linux-sh.org>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    4a6d70c9
nmi.c 13.9 KB