public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Peter Zijlstra <peterz@infradead.org>
Subject: [PATCH 00/14] tracing: Convert over to guard() and __free() infrastructure
Date: Thu, 19 Dec 2024 15:11:58 -0500	[thread overview]
Message-ID: <20241219201158.193821672@goodmis.org> (raw)


Move tracing over to using guard() and __free() infrastructure

In the past, there's been several bug fixes in the tracing code that
were related to error paths. An error may cause a function to exit
without freeing some memory or releasing a lock.

The new guard() and __free() clean up removes this problem by having
the locks released or memory freed whenever the function exits in
any path.

This also removes a lot of the goto spaghetti code and makes it easier
to read.

This series converts most of the tracing code over to use this infrastructure
where it makes sense.

Steven Rostedt (14):
      tracing: Switch trace.c code over to use guard()
      tracing: Return -EINVAL if a boot tracer tries to enable the mmiotracer at boot
      tracing: Have event_enable_write() just return error on error
      tracing: Simplify event_enable_func() goto out_free logic
      tracing: Simplify event_enable_func() goto_reg logic
      tracing: Switch trace_events.c code over to use guard()
      tracing: Switch trace_events_hist.c code over to use guard()
      tracing: Switch trace_events_trigger.c code over to use guard()
      tracing/string: Create and use __free(argv_free) in trace_dynevent.c
      tracing: Switch trace_events_filter.c code over to use guard()
      tracing: Switch trace_events_synth.c code over to use guard()
      tracing: Switch trace_osnoise.c code over to use guard() and __free()
      tracing: Switch trace_stack.c code over to use guard()
      tracing: Switch trace_stat.c code over to use guard()

----
 include/linux/string.h              |   3 +
 kernel/trace/trace.c                | 266 +++++++++++++-----------------------
 kernel/trace/trace_dynevent.c       |  23 +---
 kernel/trace/trace_events.c         | 151 +++++++++-----------
 kernel/trace/trace_events_filter.c  |  23 +---
 kernel/trace/trace_events_hist.c    |  32 ++---
 kernel/trace/trace_events_synth.c   |  17 +--
 kernel/trace/trace_events_trigger.c |  69 ++++------
 kernel/trace/trace_osnoise.c        |  40 ++----
 kernel/trace/trace_stack.c          |   6 +-
 kernel/trace/trace_stat.c           |  26 ++--
 11 files changed, 236 insertions(+), 420 deletions(-)

             reply	other threads:[~2024-12-19 20:13 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-19 20:11 Steven Rostedt [this message]
2024-12-19 20:11 ` [PATCH 01/14] tracing: Switch trace.c code over to use guard() Steven Rostedt
2024-12-20 16:33   ` Markus Elfring
2024-12-19 20:12 ` [PATCH 02/14] tracing: Return -EINVAL if a boot tracer tries to enable the mmiotracer at boot Steven Rostedt
2024-12-19 20:12 ` [PATCH 03/14] tracing: Have event_enable_write() just return error on error Steven Rostedt
2024-12-19 20:12 ` [PATCH 04/14] tracing: Simplify event_enable_func() goto out_free logic Steven Rostedt
2024-12-19 20:12 ` [PATCH 05/14] tracing: Simplify event_enable_func() goto_reg logic Steven Rostedt
2024-12-19 20:12 ` [PATCH 06/14] tracing: Switch trace_events.c code over to use guard() Steven Rostedt
2024-12-19 20:12 ` [PATCH 07/14] tracing: Switch trace_events_hist.c " Steven Rostedt
2024-12-19 20:12 ` [PATCH 08/14] tracing: Switch trace_events_trigger.c " Steven Rostedt
2024-12-20 13:38   ` Steven Rostedt
2024-12-20 16:56   ` Markus Elfring
2024-12-19 20:12 ` [PATCH 09/14] tracing/string: Create and use __free(argv_free) in trace_dynevent.c Steven Rostedt
     [not found]   ` <CAHp75Vc2t_yppC85dnYrzDEEkFBF=NnoCna_PA=8fFFtusg7Ow@mail.gmail.com>
2024-12-20 13:31     ` Steven Rostedt
     [not found]       ` <CAHp75VeWpS8ZUct5MJBbCkpPGmg0=9_t_-RhV5DD4-L4wRnvxQ@mail.gmail.com>
2024-12-20 15:28         ` Steven Rostedt
2024-12-19 20:12 ` [PATCH 10/14] tracing: Switch trace_events_filter.c code over to use guard() Steven Rostedt
2024-12-19 20:12 ` [PATCH 11/14] tracing: Switch trace_events_synth.c " Steven Rostedt
2024-12-19 20:12 ` [PATCH 12/14] tracing: Switch trace_osnoise.c code over to use guard() and __free() Steven Rostedt
2024-12-20 17:08   ` Markus Elfring
2024-12-19 20:12 ` [PATCH 13/14] tracing: Switch trace_stack.c code over to use guard() Steven Rostedt
2024-12-19 20:12 ` [PATCH 14/14] tracing: Switch trace_stat.c " Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241219201158.193821672@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox