Skip to content

tracing: Fixes for v6.19

Steven Rostedt lkml stable 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest5 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5tracing: Drop unneeded assignment to soft_modekernel/trace/trace_events.c+3 -40 replies
2/5ring-buffer: Avoid softlockup in ring_buffer_resize() during memory freekernel/trace/ring_buffer.c+2 -00 replies
3/5ftrace: Make ftrace_graph_ent depth field signedinclude/linux/ftrace.h+1 -10 replies
4/5tracing: Add recursion protection in kernel stack trace recordinginclude/linux/trace_recursion.h kernel/trace/trace.c+15 -00 replies
5/5trace: ftrace_dump_on_oops[] is not exported, make it statickernel/trace/trace.c+1 -10 replies

Reviews trailers per patch

2 of 5 patches have a Reviewed-by or Acked-by.

PatchMasami Hiramatsu (Google)Yao Kai
1/5
2/5A-b
3/5A-b
4/5T-b
5/5

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [for-linus][PATCH 0/5] tracing: Fixes for v6.19

tracing fixes for v6.19:

- Remove useless assignment of soft_mode variable

The function __ftrace_event_enable_disable() sets "soft_mode" in one of the branch paths but doesn't use it after that. Remove the setting of that variable.

- Add a cond_resched() in ring_buffer_resize()

The resize function that allocates all the pages for the ring buffer was causing a soft lockup on PREEMPT_NONE configs when allocating large buffers on machines with many CPUs. Hopefully this is the last cond_resched() needed to be added as PREEMPT_LAZY becomes the norm in the future.

- Make ftrace_graph_ent depth field signed

The "depth" field of struct ftrace_graph_ent was converted from "int" to "unsigned long" for alignment reasons to work with being embedded in other structures. The conversion from a signed to unsigned caused integrity checks to always pass as they were comparing "depth" to less than zero. Make the field signed long.

- Add recursion protection to stack trace events

A infinite recursion was triggered by a stack trace event calling RCU which internally called rcu_read_unlock_special(), which triggered an event that was also doing stacktraces which cause it to trigger the same RCU lock that called rcu_read_unlock_special() again.

Update the trace_test_and_set_recursion() to add a set of context checks for events to use, and have the stack trace event use that for recursion protection.

- Make the variable ftrace_dump_on_oops static

The cleanup of sysctl that moved all the updates to the files that use them moved the reference of ftrace_dump_on_oops to where it is used. It is no longer used outside of the trace.c file. Make it static.

git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace/fixes

Head SHA1: 1e2ed4bfd50ace3c4272cfab7e9aa90956fb7ae0

Ben Dooks (1):

      trace: ftrace_dump_on_oops[] is not exported, make it static

Julia Lawall (1):
tracing: Drop unneeded assignment to soft_mode

Steven Rostedt (2):
ftrace: Make ftrace_graph_ent depth field signed
tracing: Add recursion protection in kernel stack trace recording

Wupeng Ma (1):
ring-buffer: Avoid softlockup in ring_buffer_resize() during memory free

----

 include/linux/ftrace.h          | 2 +-
 include/linux/trace_recursion.h | 9 +++++++++
 kernel/trace/ring_buffer.c      | 2 ++
 kernel/trace/trace.c            | 8 +++++++-
 kernel/trace/trace_events.c     | 7 +++----
 5 files changed, 22 insertions(+), 6 deletions(-)