From: Steven Rostedt <rostedt@kernel.org>
To: linux-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>,
Amit Machhiwal <amachhiw@linux.ibm.com>,
Christian Brauner <brauner@kernel.org>,
David Carlier <devnexen@gmail.com>,
Dmitry Kandybka <d.kandybka@gmail.com>,
Donggeun Yoo <donggeunyoo.kernel@gmail.com>,
Krystian Kaniewski <krystianmkaniewski@gmail.com>,
Lee Jones <lee@kernel.org>, Tengda Wu <wutengda@huaweicloud.com>,
Vincent Donnefort <vdonnefort@google.com>
Subject: [for-linus][PATCH 00/16] tracing: Fixes for v7.3
Date: Thu, 15 Oct 2026 09:33:10 -0400 [thread overview]
Message-ID: <20261015133310.731003448@kernel.org> (raw)
Fixes for v7.3:
- Fix NULL dereference when copying histogram field variable
If event_hist_trigger_parse() creates an action that uses one of pseudo
fields for its keys, the hist_data field element will have a NULL for its
field member. When looking to match that key, the lookup uses
key_field->field->name which will dereference a NULL pointer.
Instead use the helper function that handles such cases: expr_field_str().
- Take the trace_types_lock when dropping the buffer_meta reference
The tracing_buffer_meta_open() error return drops the trace_array
reference with __trace_array_put() instead of trace_array_put() where the
former doesn't take the lock and the latter does.
- Fix NULL pointer dereference when reading per_cpu/cpuN/buffer_meta
These files are created for every possible CPU. But it only contains data
for CPUs that have come online. If one is read for a CPU that hasn't come
online yet, it triggers a NULL pointer dereference.
Have reading of CPUs that have not come on line yet return -ENODEV.
- Fix an out-of-bounds shift in the log2 histogram modifier
Histograms can take a log2 modifier to have the buckets defined by log2
increments. If a shift is greater than ULONG_MAX or above 2^63, the key
falls into a lower order bucket.
Use order_base_2() instead of "ilog2(n - 1) + 1" to have all overflowed
keys go into the top bucket.
- Fix the persistent ring buffer rb_meta_subbuf_idx() accounting
The algorithm for finding the index of a sub-buffer in a persistent ring
buffer buffer did not take into account the meta data at the beginning of
the buffer causing the wrong index to be returned.
As rb_subbufs_from_meta() does the proper accounting to find the first
sub-buffer, use that function instead of repeating the logic (incorrectly)
and make the calculations based off of that.
- Fix the symbol name checks for the remote buffer code
The remote ring buffer has a build time check to make sure its not using
any code that will not be in the hypervisor. For various architectures,
there has been false positive reports from this checker.
Fix them.
- Fix false warning in ring_buffer_map_get_reader()
There is a WARN_ON() after rb_get_reader_page() if no reader is returned.
But there are legitimate cases where this can happen. Remove the WARN_ON()
and also a check that covers one of the legitimate cases that tries to
exit out early. There's no need for the check if it just simply allows the
return of NULL from rb_get_reader_page().
- Fix the ignored return value from resize_buffer_duplicate_size()
Some clean up of the code in tracing_snapshot_write() removed checking the
return value of resize_buffer_duplicate_size() and if that failed it would
not be detected.
- Fix the histogram timestamps for buffered events
The histogram timestamps are taken from the events that are recorded.
It currently reads ring_buffer_event_time_stamp() but if the event is
buffered it does not read it properly. Use tracing_event_time_stamp()
which handles both buffered and normal events.
- Do not initialize tracefs if tracing is disabled at boot
If tracing fails to allocate or some other error is detected,
tracing_disabled is set. Do not initialize tracefs in this case as it may
expect data to be initialized but is not.
- Free eventfs inode after an RCU grace period
Currently eventfs_inodes are freed after a SRCU grace period as the
iterations in the code use SRCU. There are locations that the inode may
still be accessed from the VFS that uses RCU which does not have the same
synchronization as SRCU. Add an RCU wait before free eventfs inodes.
- Do not fail persistent and remote buffers under memory pressure
As persistent and remote buffers have their own pre-allocated memory,
there's no reason to check how much memory is available before created
them. By checking the memory pressure, these buffers may fail to be
created even though their memory is already present.
- Account for subbuffer size when checking how much memory is available
Before allocating a ring buffer, the size is checked against the current
memory pressure of the system. But it assumes every sub-buffer is of page
size. This is no longer the case. Use the actual sub-buffer size when
calculating how much memory will be used.
- Reject non-stack fields for synthetic stacktrace fields
Stack traces are special fields and the checks currently do not do enough
to make sure that the fields being processed as stack traces are indeed
stack traces. Update the logic to properly detect what is or is not a
stack trace.
git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace/fixes
Head SHA1: a244c241593b5b38a08f0df2cb43c26574efbdcb
Amit Machhiwal (1):
tracing: Do not initialize tracefs work if tracing is disabled
Christian Brauner (1):
eventfs: Free the eventfs_inode after an rcu grace period too
David Carlier (2):
tracing: Take trace_types_lock when dropping the buffer_meta reference
ring-buffer: Do not show buffer_meta for CPUs without a buffer
Dmitry Kandybka (1):
tracing: Fix ignored return value of resize_buffer_duplicate_size()
Donggeun Yoo (3):
tracing: Fix NULL dereference when copying keys for a field variable
tracing: Fix the shift out of bounds in the log2 histogram modifier
ring-buffer: Fix the sub-buffer array base in rb_meta_subbuf_idx()
Krystian Kaniewski (1):
ring-buffer: Fix false warning in ring_buffer_map_get_reader()
Lee Jones (1):
tracing/histograms: Reject non-stacktrace fields for synthetic stacktrace fields
Tengda Wu (1):
tracing: Fix hist trigger timestamps for buffered events
Vincent Donnefort (5):
tracing: Fix empty symbol names in simple_ring_buffer undef check
tracing: Fix simple_ring_buffer undef check on parisc
tracing: Fix simple_ring_buffer undef check on sparc64
ring-buffer: Skip si_mem_available() for persistent and remote buffers
ring-buffer: Use subbuf_order in available memory estimation
----
fs/tracefs/event_inode.c | 10 ++++++-
kernel/trace/Makefile | 5 ++--
kernel/trace/ring_buffer.c | 60 +++++++++++++++++++---------------------
kernel/trace/trace.c | 8 +++++-
kernel/trace/trace_events_hist.c | 21 +++++++++-----
kernel/trace/trace_snapshot.c | 5 +++-
kernel/trace/undefsyms_base.c | 5 +++-
7 files changed, 70 insertions(+), 44 deletions(-)
next reply other threads:[~2026-10-15 13:34 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-15 13:33 Steven Rostedt [this message]
2026-10-15 13:33 ` [for-linus][PATCH 01/16] tracing: Fix NULL dereference when copying keys for a field variable Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 02/16] tracing: Take trace_types_lock when dropping the buffer_meta reference Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 03/16] ring-buffer: Do not show buffer_meta for CPUs without a buffer Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 04/16] tracing: Fix the shift out of bounds in the log2 histogram modifier Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 05/16] ring-buffer: Fix the sub-buffer array base in rb_meta_subbuf_idx() Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 06/16] tracing: Fix empty symbol names in simple_ring_buffer undef check Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 07/16] tracing: Fix simple_ring_buffer undef check on parisc Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 08/16] tracing: Fix simple_ring_buffer undef check on sparc64 Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 09/16] ring-buffer: Fix false warning in ring_buffer_map_get_reader() Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 10/16] tracing: Fix ignored return value of resize_buffer_duplicate_size() Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 11/16] tracing: Fix hist trigger timestamps for buffered events Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 12/16] tracing: Do not initialize tracefs work if tracing is disabled Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 13/16] eventfs: Free the eventfs_inode after an rcu grace period too Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 14/16] ring-buffer: Skip si_mem_available() for persistent and remote buffers Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 15/16] ring-buffer: Use subbuf_order in available memory estimation Steven Rostedt
2026-10-15 13:33 ` [for-linus][PATCH 16/16] tracing/histograms: Reject non-stacktrace fields for synthetic stacktrace fields 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=20261015133310.731003448@kernel.org \
--to=rostedt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=amachhiw@linux.ibm.com \
--cc=brauner@kernel.org \
--cc=d.kandybka@gmail.com \
--cc=devnexen@gmail.com \
--cc=donggeunyoo.kernel@gmail.com \
--cc=krystianmkaniewski@gmail.com \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=vdonnefort@google.com \
--cc=wutengda@huaweicloud.com \
/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
all inboxes | Powered by JetHome®