[for-next][PATCH 0/6] tracing: Final clean ups for v6.17

Steven Rostedt posted 6 patches 2 months ago
include/linux/ring_buffer.h       |   3 +
kernel/trace/ring_buffer.c        |  16 +--
kernel/trace/trace.c              | 287 ++++++++++++++------------------------
kernel/trace/trace_events_synth.c |   6 +-
kernel/trace/trace_output.c       |   8 +-
5 files changed, 120 insertions(+), 200 deletions(-)
[for-next][PATCH 0/6] tracing: Final clean ups for v6.17
Posted by Steven Rostedt 2 months ago
Last minute changes for v6.17

- Remove unneeded goto out statements

  Over time, the logic was restructured but left a "goto out" where the
  out label simply did a "return ret;". Instead of jumping to this out
  label, simply return immediately and remove the out label.

- Clean up the tracing code with guard() and __free() logic

  There were several locations that were prime candidates for using guard()
  and __free() helpers. Switch them over to use them.

- Fix output of function argument traces for unsigned int values

  The function tracer with "func-args" option set will record up to 6 argument
  registers and then use BTF to format them for human consumption when the
  trace file is read. There's several arguments that are "unsigned long" and
  even "unsigned int" that are either and address or a mask. It is easier to
  understand if they were printed using hexadecimal instead of decimal.
  The old method just printed all non-pointer values as signed integers,
  which made it even worse for unsigned integers.

  For instance, instead of:

    __local_bh_disable_ip(ip=-2127311112, cnt=256) <-handle_softirqs

  Show:

   __local_bh_disable_ip(ip=0xffffffff8133cef8, cnt=0x100) <-handle_softirqs

  git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace/for-next

Head SHA1: 3ca824369b71d4b441e1fdcdee8e66bcb05510a9


Steven Rostedt (6):
      tracing: Remove unneeded goto out logic
      tracing: Add guard(ring_buffer_nest)
      tracing: Add guard() around locks and mutexes in trace.c
      tracing: Use __free(kfree) in trace.c to remove gotos
      ring-buffer: Convert ring_buffer_write() to use guard(preempt_notrace)
      tracing: Have unsigned int function args displayed as hexadecimal

----
 include/linux/ring_buffer.h       |   3 +
 kernel/trace/ring_buffer.c        |  16 +--
 kernel/trace/trace.c              | 287 ++++++++++++++------------------------
 kernel/trace/trace_events_synth.c |   6 +-
 kernel/trace/trace_output.c       |   8 +-
 5 files changed, 120 insertions(+), 200 deletions(-)
Re: [for-next][PATCH 0/6] tracing: Final clean ups for v6.17
Posted by Steven Rostedt 2 months ago
[ Adding Masami and Mathieu ]

Oops, I accidentally used the RTLA script to send these.

Sorry Tomas and John ;-)

-- Steve


On Sat, 02 Aug 2025 12:27:34 -0400
Steven Rostedt <rostedt@kernel.org> wrote:

> Last minute changes for v6.17
> 
> - Remove unneeded goto out statements
> 
>   Over time, the logic was restructured but left a "goto out" where the
>   out label simply did a "return ret;". Instead of jumping to this out
>   label, simply return immediately and remove the out label.
> 
> - Clean up the tracing code with guard() and __free() logic
> 
>   There were several locations that were prime candidates for using guard()
>   and __free() helpers. Switch them over to use them.
> 
> - Fix output of function argument traces for unsigned int values
> 
>   The function tracer with "func-args" option set will record up to 6 argument
>   registers and then use BTF to format them for human consumption when the
>   trace file is read. There's several arguments that are "unsigned long" and
>   even "unsigned int" that are either and address or a mask. It is easier to
>   understand if they were printed using hexadecimal instead of decimal.
>   The old method just printed all non-pointer values as signed integers,
>   which made it even worse for unsigned integers.
> 
>   For instance, instead of:
> 
>     __local_bh_disable_ip(ip=-2127311112, cnt=256) <-handle_softirqs
> 
>   Show:
> 
>    __local_bh_disable_ip(ip=0xffffffff8133cef8, cnt=0x100) <-handle_softirqs
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
> trace/for-next
> 
> Head SHA1: 3ca824369b71d4b441e1fdcdee8e66bcb05510a9
> 
> 
> Steven Rostedt (6):
>       tracing: Remove unneeded goto out logic
>       tracing: Add guard(ring_buffer_nest)
>       tracing: Add guard() around locks and mutexes in trace.c
>       tracing: Use __free(kfree) in trace.c to remove gotos
>       ring-buffer: Convert ring_buffer_write() to use guard(preempt_notrace)
>       tracing: Have unsigned int function args displayed as hexadecimal
> 
> ----
>  include/linux/ring_buffer.h       |   3 +
>  kernel/trace/ring_buffer.c        |  16 +--
>  kernel/trace/trace.c              | 287 ++++++++++++++------------------------
>  kernel/trace/trace_events_synth.c |   6 +-
>  kernel/trace/trace_output.c       |   8 +-
>  5 files changed, 120 insertions(+), 200 deletions(-)