WSL2-Linux-Kernel/kernel/trace
Zheng Yejian 3816867d2f tracing: Avoid possible softlockup in tracing_iter_reset()
commit 49aa8a1f4d6800721c7971ed383078257f12e8f9 upstream.

In __tracing_open(), when max latency tracers took place on the cpu,
the time start of its buffer would be updated, then event entries with
timestamps being earlier than start of the buffer would be skipped
(see tracing_iter_reset()).

Softlockup will occur if the kernel is non-preemptible and too many
entries were skipped in the loop that reset every cpu buffer, so add
cond_resched() to avoid it.

Cc: stable@vger.kernel.org
Fixes: 2f26ebd549 ("tracing: use timestamp to determine start of latency traces")
Link: https://lore.kernel.org/20240827124654.3817443-1-zhengyejian@huaweicloud.com
Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Zheng Yejian <zhengyejian@huaweicloud.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-12 11:07:44 +02:00
..
Kconfig tracing: Build event generation tests only as modules 2024-07-05 09:14:29 +02:00
Makefile
blktrace.c trace/blktrace: fix memory leak with using debugfs_lookup() 2023-03-10 09:39:47 +01:00
bpf_trace.c bpf: Remove trace_printk_lock 2024-03-01 13:21:43 +01:00
bpf_trace.h
error_report-traces.c
fgraph.c
ftrace.c ftrace: Fix possible use-after-free issue in ftrace_location() 2024-07-05 09:14:12 +02:00
ftrace_internal.h
kprobe_event_gen_test.c tracing: Fix wrong return in kprobe_event_gen_test.c 2023-04-05 11:24:54 +02:00
pid_list.c
pid_list.h
power-traces.c
preemptirq_delay_test.c tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test 2024-07-05 09:14:36 +02:00
ring_buffer.c ring-buffer: Fix a race between readers and resize checks 2024-06-16 13:39:12 +02:00
ring_buffer_benchmark.c
rpm-traces.c
synth_event_gen_test.c tracing / synthetic: Disable events after testing in synth_event_gen_test_init() 2024-01-05 15:13:35 +01:00
trace.c tracing: Avoid possible softlockup in tracing_iter_reset() 2024-09-12 11:07:44 +02:00
trace.h tracing: Fix uaf issue when open the hist or hist_debug file 2024-01-25 14:52:29 -08:00
trace_benchmark.c
trace_benchmark.h
trace_boot.c
trace_branch.c
trace_clock.c
trace_dynevent.c
trace_dynevent.h
trace_entries.h
trace_eprobe.c kernel/trace: Fix cleanup logic of enable_trace_eprobe 2023-07-23 13:47:43 +02:00
trace_event_perf.c tracing: Show size of requested perf buffer 2024-05-02 16:24:47 +02:00
trace_events.c tracing: hide unused ftrace_event_id_fops 2024-04-17 11:15:16 +02:00
trace_events_filter.c tracing: Have trace_event_file have ref counters 2023-11-28 16:56:36 +00:00
trace_events_filter_test.h
trace_events_hist.c tracing: Fix uaf issue when open the hist or hist_debug file 2024-01-25 14:52:29 -08:00
trace_events_inject.c tracing: Have event inject files inc the trace array ref count 2023-10-06 13:18:02 +02:00
trace_events_synth.c tracing: Have the user copy of synthetic event address use correct context 2023-11-28 16:56:31 +00:00
trace_events_trigger.c Revert "tracing/trigger: Fix to return error if failed to alloc snapshot" 2024-04-27 17:05:23 +02:00
trace_export.c
trace_functions.c
trace_functions_graph.c
trace_hwlat.c tracing: Remove extra space at the end of hwlat_detector/mode 2023-09-19 12:22:48 +02:00
trace_irqsoff.c tracing: Fix memleak due to race between current_tracer and trace 2023-08-30 16:18:13 +02:00
trace_kdb.c
trace_kprobe.c tracing/kprobes: Fix symbol counting logic by looking at modules as well 2024-01-15 18:51:26 +01:00
trace_kprobe_selftest.c
trace_kprobe_selftest.h
trace_mmiotrace.c
trace_nop.c
trace_osnoise.c
trace_output.c tracing: Add size check when printing trace_marker output 2024-01-25 14:52:29 -08:00
trace_output.h
trace_preemptirq.c
trace_printk.c
trace_probe.c Revert "tracing: Add "(fault)" name injection to kernel probes" 2023-08-03 10:22:31 +02:00
trace_probe.h tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols 2023-12-23 10:42:00 +01:00
trace_probe_kernel.h tracing/probes: Fix to record 0-length data_loc in fetch_store_string*() if fails 2023-08-03 10:22:31 +02:00
trace_probe_tmpl.h tracing/probes: Fix to record 0-length data_loc in fetch_store_string*() if fails 2023-08-03 10:22:31 +02:00
trace_recursion_record.c
trace_sched_switch.c
trace_sched_wakeup.c tracing: Fix memleak due to race between current_tracer and trace 2023-08-30 16:18:13 +02:00
trace_selftest.c
trace_selftest_dynamic.c
trace_seq.c
trace_stack.c
trace_stat.c
trace_stat.h
trace_synth.h tracing: Allow synthetic events to pass around stacktraces 2023-08-03 10:22:30 +02:00
trace_syscalls.c
trace_uprobe.c bpf: Clear the probe_addr for uprobe 2023-09-19 12:22:32 +02:00
tracing_map.c tracing: Fix overflow in get_free_elt() 2024-08-19 05:45:47 +02:00
tracing_map.h