mirror-linux/kernel/trace
Steven Rostedt 97937834ae ring-buffer: Update pages_touched to reflect persistent buffer content
The pages_touched field represents the number of subbuffers in the ring
buffer that have content that can be read. This is used in accounting of
"dirty_pages" and "buffer_percent" to allow the user to wait for the
buffer to be filled to a certain amount before it reads the buffer in
blocking mode.

The persistent buffer never updated this value so it was set to zero, and
this accounting would take it as it had no content. This would cause user
space to wait for content even though there's enough content in the ring
buffer that satisfies the buffer_percent.

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Vincent Donnefort <vdonnefort@google.com>
Link: https://lore.kernel.org/20250214123512.0631436e@gandalf.local.home
Fixes: 5f3b6e839f ("ring-buffer: Validate boot range memory events")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-02-15 14:00:59 -05:00
..
rv verification/dot2k: Auto patch current kernel source 2024-12-27 14:39:35 -05:00
Kconfig fprobe: Rewrite fprobe on function-graph tracer 2024-12-26 10:50:05 -05:00
Makefile
blktrace.c blktrace: remove redundant return at end of function 2024-12-23 08:17:23 -07:00
bpf_trace.c bpf-next-6.14 2025-01-23 08:04:07 -08:00
bpf_trace.h
error_report-traces.c
fgraph.c fgraph: Remove calltime and rettime from generic operations 2025-01-21 21:55:49 -05:00
fprobe.c fprobe: Add fprobe_header encoding feature 2024-12-26 10:50:05 -05:00
ftrace.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
ftrace_internal.h
kprobe_event_gen_test.c
pid_list.c pid: allow pid_max to be set per pid namespace 2024-12-02 11:25:25 +01:00
pid_list.h
power-traces.c
preemptirq_delay_test.c
rethook.c
ring_buffer.c ring-buffer: Update pages_touched to reflect persistent buffer content 2025-02-15 14:00:59 -05:00
ring_buffer_benchmark.c ring-buffer: Use str_low_high() helper in ring_buffer_producer() 2024-10-19 11:12:25 -04:00
rpm-traces.c
synth_event_gen_test.c
trace.c tracing: Do not allow mmap() of persistent ring buffer 2025-02-15 13:59:52 -05:00
trace.h Remove calltime and rettime from fgraph infrastructure 2025-01-23 17:59:25 -08:00
trace_benchmark.c
trace_benchmark.h
trace_boot.c
trace_branch.c tracing: Remove TRACE_EVENT_FL_FILTERED logic 2024-10-08 15:24:49 -04:00
trace_btf.c
trace_btf.h
trace_clock.c tracing: Use atomic64_inc_return() in trace_clock_counter() 2024-10-09 19:59:49 -04:00
trace_dynevent.c tracing/string: Create and use __free(argv_free) in trace_dynevent.c 2024-12-26 10:38:37 -05:00
trace_dynevent.h
trace_entries.h fgraph: Remove calltime and rettime from generic operations 2025-01-21 21:55:49 -05:00
trace_eprobe.c tracing/eprobe: Adopt guard() and scoped_guard() 2025-01-10 09:00:12 +09:00
trace_event_perf.c trace/trace_event_perf: remove duplicate samples on the first tracepoint event 2024-10-09 19:44:54 -04:00
trace_events.c tracing updates for v6.14: 2025-01-23 17:51:16 -08:00
trace_events_filter.c tracing: Switch trace_events_filter.c code over to use guard() 2024-12-26 10:38:37 -05:00
trace_events_filter_test.h
trace_events_hist.c tracing/hist: Support POLLPRI event for poll on histogram 2025-01-07 11:46:32 -05:00
trace_events_inject.c
trace_events_synth.c tracing: Switch trace_events_synth.c code over to use guard() 2024-12-26 10:38:37 -05:00
trace_events_trigger.c tracing: Switch trace_events_trigger.c code over to use guard() 2024-12-26 10:38:37 -05:00
trace_events_user.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
trace_export.c
trace_fprobe.c tracing: Adopt __free() and guard() for trace_fprobe.c 2025-01-16 21:27:07 -05:00
trace_functions.c ftrace: Do not find "true_parent" if HAVE_DYNAMIC_FTRACE_WITH_ARGS is not set 2024-12-16 17:22:26 -05:00
trace_functions_graph.c fgraph: Fix set_graph_notrace with setting TRACE_GRAPH_NOTRACE_BIT 2025-02-08 08:36:45 -05:00
trace_hwlat.c tracing: Remove TRACE_EVENT_FL_FILTERED logic 2024-10-08 15:24:49 -04:00
trace_irqsoff.c fgraph: Remove calltime and rettime from generic operations 2025-01-21 21:55:49 -05:00
trace_kdb.c trace: kdb: Replace simple_strtoul with kstrtoul in kdb_ftdump 2024-11-02 08:33:13 +00:00
trace_kprobe.c tracing/kprobes: Simplify __trace_kprobe_create() by removing gotos 2025-01-10 09:01:14 +09:00
trace_kprobe_selftest.c
trace_kprobe_selftest.h
trace_mmiotrace.c tracing: Remove TRACE_EVENT_FL_FILTERED logic 2024-10-08 15:24:49 -04:00
trace_nop.c
trace_osnoise.c Runtime verifier and osnoise fixes for 6.14: 2025-01-26 14:19:45 -08:00
trace_output.c tracing: Check "%s" dereference via the field and not the TP_printk format 2024-12-17 11:40:11 -05:00
trace_output.h
trace_preemptirq.c tracing: Fix archs that still call tracepoints without RCU watching 2024-12-05 09:28:58 -05:00
trace_printk.c
trace_probe.c tracing: Use __free() in trace_probe for cleanup 2025-01-10 09:00:13 +09:00
trace_probe.h
trace_probe_kernel.h
trace_probe_tmpl.h tracing/fprobe: Enable fprobe events with CONFIG_DYNAMIC_FTRACE_WITH_ARGS 2024-12-26 10:50:04 -05:00
trace_recursion_record.c
trace_sched_switch.c pid: allow pid_max to be set per pid namespace 2024-12-02 11:25:25 +01:00
trace_sched_wakeup.c fgraph: Remove calltime and rettime from generic operations 2025-01-21 21:55:49 -05:00
trace_selftest.c fgraph: Pass ftrace_regs to retfunc 2024-12-26 10:50:03 -05:00
trace_selftest_dynamic.c
trace_seq.c
trace_stack.c tracing: Switch trace_stack.c code over to use guard() 2024-12-26 10:38:37 -05:00
trace_stat.c tracing: Switch trace_stat.c code over to use guard() 2024-12-26 10:38:37 -05:00
trace_stat.h
trace_synth.h
trace_syscalls.c tracing/perf: Add might_fault check to syscall probes 2024-10-09 17:09:46 -04:00
trace_uprobe.c tracing/uprobe: Adopt guard() and scoped_guard() 2025-01-10 09:00:12 +09:00
tracing_map.c tracing: Fix cmp_entries_dup() to respect sort() comparison rules 2024-12-04 10:38:24 -05:00
tracing_map.h