From nobody Wed Feb 11 05:41:00 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 74AE12D7384 for ; Mon, 9 Feb 2026 02:20:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770603607; cv=none; b=O7yWef5JMsz/sD5CnZIqbpIrzJifzVvpl2LbPDDiHlKQ0eg41X9cH9eUTQZl0dpa+yUjPCzpDDLGdLLRsGp+yFYnrk2AueYsQf1dxXpRf98Bc0CZfC4GziiSh7RX9msWbTK3Vj5dOW2ubvcI7h3FkERGvaodGZjf0Vo6Ik+Dwec= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770603607; c=relaxed/simple; bh=KMxvfazyQcUqTvhjfQ4HMsuXQB1IjxvgdUjPavDCpl0=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=Ks1wNDlrsgAfeip/alsMzi/adKyQmFMTeiwDIL6i/4Go78TUAiWau2Dvkil9Z8QWwifhE8x+aQGy/2wemc0tAX1ZJuNI3Fc705vJdvKdV9kZOSd3rIumcDWlELapOcH85kXj4Mhsb7byXWLUot2Qt6v2unAceAnJ4eelYUMf0lU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=O3vH92J5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="O3vH92J5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F86BC4CEF7; Mon, 9 Feb 2026 02:20:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770603607; bh=KMxvfazyQcUqTvhjfQ4HMsuXQB1IjxvgdUjPavDCpl0=; h=Date:From:To:Cc:Subject:References:From; b=O3vH92J5LNLxXIDvTIeMaG5BDNuKvFCj7r2+yiz3zJqEwDxhwE/cZTBi7U0sFjW4C YuD3FBwOGFvczg2okhI7+DLdKSjGEzRZ2ERf7On4zlvg5R9VtEBG+3cYj5HvJvGPVC Pen+HtRKxdEsWUi7s6lMbBtGcPhwnyOjSAk+i6+ApXeaew1BrL5RUkETsc/Ldqp/ZK HL0AYk0gjKM1uK7jJDhU2wzL6L8CCrDyTsbcegQ4Y2yzy6lFh4YzhjkwBTB83120Na bCfVmDG2/kZ317k0i2NQIywjdrDGpVLl/MU3NCo6enfdwFZcpPY7JshAIMUgfstlUG zhvoiA/Fd3kZw== Received: from rostedt by gandalf with local (Exim 4.99.1) (envelope-from ) id 1vpGtR-0000000Aa4r-3V0c; Sun, 08 Feb 2026 21:20:53 -0500 Message-ID: <20260209022053.691489583@kernel.org> User-Agent: quilt/0.68 Date: Sun, 08 Feb 2026 21:20:36 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton Subject: [for-next][PATCH 10/20] tracing: Move __trace_buffer_{un}lock_*() functions to trace.h References: <20260209022026.627895421@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Steven Rostedt 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. Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Mathieu Desnoyers Cc: Andrew Morton Link: https://patch.msgid.link/20260208032449.813550600@kernel.org Signed-off-by: Steven Rostedt (Google) --- 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 f040ee4fe101..55cd0c774886 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1058,30 +1058,6 @@ static inline void ftrace_trace_stack(struct trace_a= rray *tr, =20 #endif =20 -static __always_inline void -trace_event_setup(struct ring_buffer_event *event, - int type, unsigned int trace_ctx) -{ - struct trace_entry *ent =3D 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 =3D ring_buffer_lock_reserve(buffer, len); - if (event !=3D 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); =20 - -static __always_inline void -__buffer_unlock_commit(struct trace_buffer *buffer, struct ring_buffer_eve= nt *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) =3D=3D 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 19cffc7b5852..c2beabe96952 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -1568,6 +1568,47 @@ char *trace_user_fault_read(struct trace_user_buf_in= fo *tinfo, const char __user *ptr, size_t size, trace_user_buf_copy copy_func, void *data); =20 +static __always_inline void +trace_event_setup(struct ring_buffer_event *event, + int type, unsigned int trace_ctx) +{ + struct trace_entry *ent =3D 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 =3D ring_buffer_lock_reserve(buffer, len); + if (event !=3D NULL) + trace_event_setup(event, type, trace_ctx); + + return event; +} + +static __always_inline void +__buffer_unlock_commit(struct trace_buffer *buffer, struct ring_buffer_eve= nt *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) =3D=3D 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) --=20 2.51.0