Commit 8e99cf9
committed
tracing: Do not allocate buffer in trace_find_next_entry() in atomic
When dumping out the trace data in latency format, a check is made to peek
at the next event to compare its timestamp to the current one, and if the
delta is of a greater size, it will add a marker showing so. But to do this,
it needs to save the current event otherwise peeking at the next event will
remove the current event. To save the event, a temp buffer is used, and if
the event is bigger than the temp buffer, the temp buffer is freed and a
bigger buffer is allocated.
This allocation is a problem when called in atomic context. The only way
this gets called via atomic context is via ftrace_dump(). Thus, use a static
buffer of 128 bytes (which covers most events), and if the event is bigger
than that, simply return NULL. The callers of trace_find_next_entry() need
to handle a NULL case, as that's what would happen if the allocation failed.
Link: https://lore.kernel.org/r/20200326091256.GR11705@shao2-debian
Fixes: ff89510 ("tracing: Save off entry when peeking at next entry")
Reported-by: kernel test robot <rong.a.chen@intel.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>1 parent 2ab2a09 commit 8e99cf9
1 file changed
+20
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3472 | 3472 | | |
3473 | 3473 | | |
3474 | 3474 | | |
| 3475 | + | |
| 3476 | + | |
| 3477 | + | |
3475 | 3478 | | |
3476 | 3479 | | |
3477 | 3480 | | |
| |||
3480 | 3483 | | |
3481 | 3484 | | |
3482 | 3485 | | |
| 3486 | + | |
| 3487 | + | |
| 3488 | + | |
| 3489 | + | |
| 3490 | + | |
| 3491 | + | |
| 3492 | + | |
| 3493 | + | |
| 3494 | + | |
| 3495 | + | |
| 3496 | + | |
| 3497 | + | |
3483 | 3498 | | |
3484 | 3499 | | |
3485 | 3500 | | |
3486 | 3501 | | |
3487 | 3502 | | |
3488 | 3503 | | |
3489 | | - | |
| 3504 | + | |
| 3505 | + | |
3490 | 3506 | | |
3491 | 3507 | | |
3492 | 3508 | | |
| |||
9203 | 9219 | | |
9204 | 9220 | | |
9205 | 9221 | | |
| 9222 | + | |
| 9223 | + | |
| 9224 | + | |
9206 | 9225 | | |
9207 | 9226 | | |
9208 | 9227 | | |
| |||
0 commit comments