From: Steven Rostedt <rostedt@kernel.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>
Subject: [PATCH 03/12] tracing: Move __trace_buffer_{un}lock_*() functions to trace.h
Date: Fri, 06 Feb 2026 14:37:44 -0500 [thread overview]
Message-ID: <20260206195935.293094674@kernel.org> (raw)
In-Reply-To: 20260206193741.767171392@kernel.org
From: Steven Rostedt <rostedt@goodmis.org>
The file trace.c has become a catchall for most things tracing. Start
making it smaller by breaking out various aspects into their own files.
Move the __always_inline functions __trace_buffer_lock_reserve(),
__trace_buffer_unlock_commit() and trace_event_setup() into trace.h.
The trace.c file will be split up and these functions will be used in more
than one of these files. As they are already __always_inline they can
easily be moved into the trace.h header file.
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
kernel/trace/trace.c | 42 ------------------------------------------
kernel/trace/trace.h | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+), 42 deletions(-)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index dafcdd31570b..42b7ad09b5d9 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -1058,30 +1058,6 @@ static inline void ftrace_trace_stack(struct trace_array *tr,
#endif
-static __always_inline void
-trace_event_setup(struct ring_buffer_event *event,
- int type, unsigned int trace_ctx)
-{
- struct trace_entry *ent = ring_buffer_event_data(event);
-
- tracing_generic_entry_update(ent, type, trace_ctx);
-}
-
-static __always_inline struct ring_buffer_event *
-__trace_buffer_lock_reserve(struct trace_buffer *buffer,
- int type,
- unsigned long len,
- unsigned int trace_ctx)
-{
- struct ring_buffer_event *event;
-
- event = ring_buffer_lock_reserve(buffer, len);
- if (event != NULL)
- trace_event_setup(event, type, trace_ctx);
-
- return event;
-}
-
void tracer_tracing_on(struct trace_array *tr)
{
if (tr->array_buffer.buffer)
@@ -1109,24 +1085,6 @@ void tracing_on(void)
}
EXPORT_SYMBOL_GPL(tracing_on);
-
-static __always_inline void
-__buffer_unlock_commit(struct trace_buffer *buffer, struct ring_buffer_event *event)
-{
- __this_cpu_write(trace_taskinfo_save, true);
-
- /* If this is the temp buffer, we need to commit fully */
- if (this_cpu_read(trace_buffered_event) == event) {
- /* Length is in event->array[0] */
- ring_buffer_write(buffer, event->array[0], &event->array[1]);
- /* Release the temp buffer */
- this_cpu_dec(trace_buffered_event_cnt);
- /* ring_buffer_unlock_commit() enables preemption */
- preempt_enable_notrace();
- } else
- ring_buffer_unlock_commit(buffer);
-}
-
int __trace_array_puts(struct trace_array *tr, unsigned long ip,
const char *str, int size)
{
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index ccfaa9b4d2bf..d22d761f8ebd 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -1572,6 +1572,47 @@ char *trace_user_fault_read(struct trace_user_buf_info *tinfo,
const char __user *ptr, size_t size,
trace_user_buf_copy copy_func, void *data);
+static __always_inline void
+trace_event_setup(struct ring_buffer_event *event,
+ int type, unsigned int trace_ctx)
+{
+ struct trace_entry *ent = ring_buffer_event_data(event);
+
+ tracing_generic_entry_update(ent, type, trace_ctx);
+}
+
+static __always_inline struct ring_buffer_event *
+__trace_buffer_lock_reserve(struct trace_buffer *buffer,
+ int type,
+ unsigned long len,
+ unsigned int trace_ctx)
+{
+ struct ring_buffer_event *event;
+
+ event = ring_buffer_lock_reserve(buffer, len);
+ if (event != NULL)
+ trace_event_setup(event, type, trace_ctx);
+
+ return event;
+}
+
+static __always_inline void
+__buffer_unlock_commit(struct trace_buffer *buffer, struct ring_buffer_event *event)
+{
+ __this_cpu_write(trace_taskinfo_save, true);
+
+ /* If this is the temp buffer, we need to commit fully */
+ if (this_cpu_read(trace_buffered_event) == event) {
+ /* Length is in event->array[0] */
+ ring_buffer_write(buffer, event->array[0], &event->array[1]);
+ /* Release the temp buffer */
+ this_cpu_dec(trace_buffered_event_cnt);
+ /* ring_buffer_unlock_commit() enables preemption */
+ preempt_enable_notrace();
+ } else
+ ring_buffer_unlock_commit(buffer);
+}
+
static inline void
__trace_event_discard_commit(struct trace_buffer *buffer,
struct ring_buffer_event *event)
--
2.51.0
next prev parent reply other threads:[~2026-02-06 19:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-06 19:37 [PATCH 00/12] tracing: Clean up trace.c and move some code into other files Steven Rostedt
2026-02-06 19:37 ` [PATCH 01/12] tracing: Make tracing_disabled global for tracing system Steven Rostedt
2026-02-06 19:37 ` [PATCH 02/12] tracing: Make tracing_selftest_running global to the tracing subsystem Steven Rostedt
2026-02-06 19:37 ` Steven Rostedt [this message]
2026-02-06 19:37 ` [PATCH 04/12] tracing: Move ftrace_trace_stack() out of trace.c and into trace.h Steven Rostedt
2026-02-06 19:37 ` [PATCH 05/12] tracing: Make printk_trace global for tracing system Steven Rostedt
2026-02-06 19:37 ` [PATCH 06/12] tracing: Make tracing_update_buffers() take NULL for global_trace Steven Rostedt
2026-02-06 19:37 ` [PATCH 07/12] tracing: Have trace_printk functions use flags instead of using global_trace Steven Rostedt
2026-02-06 19:37 ` [PATCH 08/12] tracing: Use system_state in trace_printk_init_buffers() Steven Rostedt
2026-02-06 19:37 ` [PATCH 09/12] tracing: Move trace_printk functions out of trace.c and into trace_printk.c Steven Rostedt
2026-02-06 19:37 ` [PATCH 10/12] tracing: Move pid filtering into trace_pid.c Steven Rostedt
2026-02-06 19:37 ` [PATCH 11/12] tracing: Move tracing_set_filter_buffering() into trace_events_hist.c Steven Rostedt
2026-02-06 19:37 ` [PATCH 12/12] tracing: Move snapshot code out of trace.c and into trace_snapshot.c Steven Rostedt
2026-02-07 14:56 ` [PATCH 00/12] tracing: Clean up trace.c and move some code into other files 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=20260206195935.293094674@kernel.org \
--to=rostedt@kernel.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 \
/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