]> git.baikalelectronics.ru Git - kernel.git/commit
tracing: Fix sleeping while atomic in kdb ftdump
authorDouglas Anderson <dianders@chromium.org>
Sat, 9 Jul 2022 00:09:52 +0000 (17:09 -0700)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Tue, 12 Jul 2022 20:35:58 +0000 (16:35 -0400)
commitc5ec92cdcb16ab3a0fe23c1f292519cb83c6a905
treeecb095be5125327e0dbc80a63cbc6c3eec3bd6a5
parent7f6006e4db348d630183740e71ea4981a8d4f777
tracing: Fix sleeping while atomic in kdb ftdump

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 768b67fb971d ("tracing:
Save off entry when peeking at next entry"), which added the
allocation in that path. The problematic commit was already fixed by
commit 4738bd0c20c5 ("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 61ec8463c9e4 ("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: 768b67fb971d ("tracing: Save off entry when peeking at next entry")
Fixes: 61ec8463c9e4 ("tracing: Show real address for trace event arguments")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/trace.c