• Douglas Anderson's avatar
    tracing: Fix sleeping while atomic in kdb ftdump · 495fcec8
    Douglas Anderson authored
    If you drop into kdb and type "ftdump" you'll get a sleeping while
    atomic warning from memory allocation in trace_find_next_entry().
    
    This appears to have been caused by commit ff895103 ("tracing:
    Save off entry when peeking at next entry"), which added the
    allocation in that path. The problematic commit was already fixed by
    commit 8e99cf91 ("tracing: Do not allocate buffer in
    trace_find_next_entry() in atomic") but that fix missed the kdb case.
    
    The fix here is easy: just move the assignment of the static buffer to
    the place where it should have been to begin with:
    trace_init_global_iter(). That function is called in two places, once
    is right before the assignment of the static buffer added by the
    previous fix and once is in kdb.
    
    Note that it appears that there's a second static buffer that we need
    to assign that was added in commit efbbdaa2 ("tracing: Show real
    address for trace event arguments"), so we'll move that too.
    
    Link: https://lkml.kernel.org/r/20220708170919.1.I75844e5038d9425add2ad853a608cb44bb39df40@changeid
    
    Fixes: ff895103 ("tracing: Save off entry when peeking at next entry")
    Fixes: efbbdaa2 ("tracing: Show real address for trace event arguments")
    Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    495fcec8
trace.c 249 KB