linux-xiaomi-chiron/kernel/trace
Nikita Yushchenko 0878355b51 tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
If start_per_cpu_kthreads() called from osnoise_workload_start() returns
error, event hooks are left in broken state: unhook_irq_events() called
but unhook_thread_events() and unhook_softirq_events() not called, and
trace_osnoise_callback_enabled flag not cleared.

On the next tracer enable, hooks get not installed due to
trace_osnoise_callback_enabled flag.

And on the further tracer disable an attempt to remove non-installed
hooks happened, hitting a WARN_ON_ONCE() in tracepoint_remove_func().

Fix the error path by adding the missing part of cleanup.
While at this, introduce osnoise_unhook_events() to avoid code
duplication between this error path and normal tracer disable.

Link: https://lkml.kernel.org/r/20220109153459.3701773-1-nikita.yushchenko@virtuozzo.com

Cc: stable@vger.kernel.org
Fixes: bce29ac9ce ("trace: Add osnoise tracer")
Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Signed-off-by: Nikita Yushchenko <nikita.yushchenko@virtuozzo.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2022-01-13 17:02:42 -05:00
..
blktrace.c
bpf_trace.c bpf: Forbid bpf_ktime_get_coarse_ns and bpf_timer_* in tracing progs 2021-11-15 20:35:58 -08:00
bpf_trace.h
error_report-traces.c
fgraph.c
ftrace.c ftrace: Add test to make sure compiled time sorts work 2022-01-13 16:23:05 -05:00
ftrace_internal.h
Kconfig ftrace: Add test to make sure compiled time sorts work 2022-01-13 16:23:05 -05:00
kprobe_event_gen_test.c
Makefile
pid_list.c
pid_list.h
power-traces.c
preemptirq_delay_test.c
ring_buffer.c
ring_buffer_benchmark.c
rpm-traces.c
synth_event_gen_test.c
trace.c tracing: Account bottom half disabled sections. 2022-01-13 16:23:04 -05:00
trace.h tracing: Add helper functions to simplify event_command.parse() callback handling 2022-01-10 11:09:11 -05: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 tracing: Remove ops param from event_command reg()/unreg() callbacks 2022-01-10 11:09:11 -05:00
trace_event_perf.c
trace_events.c tracing: Remove duplicate warnings when calling trace_create_file() 2022-01-13 17:02:42 -05:00
trace_events_filter.c tracing: Add test for user space strings when filtering on string pointers 2022-01-13 17:00:45 -05:00
trace_events_filter_test.h
trace_events_hist.c tracing: Remove ops param from event_command reg()/unreg() callbacks 2022-01-10 11:09:11 -05:00
trace_events_inject.c tracing: Support __rel_loc relative dynamic data location attribute 2021-12-06 15:37:21 -05:00
trace_events_synth.c tracing: Do not let synth_events block other dyn_event systems during create 2021-12-11 09:34:32 -05:00
trace_events_trigger.c tracing: Add helper functions to simplify event_command.parse() callback handling 2022-01-10 11:09:11 -05:00
trace_export.c
trace_functions.c
trace_functions_graph.c
trace_hwlat.c
trace_irqsoff.c
trace_kdb.c
trace_kprobe.c tracing/kprobes: 'nmissed' not showed correctly for kretprobe 2022-01-13 17:02:42 -05:00
trace_kprobe_selftest.c
trace_kprobe_selftest.h
trace_mmiotrace.c
trace_nop.c
trace_osnoise.c tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails 2022-01-13 17:02:42 -05:00
trace_output.c tracing: Account bottom half disabled sections. 2022-01-13 16:23:04 -05:00
trace_output.h
trace_preemptirq.c
trace_printk.c
trace_probe.c tracing/probes: check the return value of kstrndup() for pbuf 2022-01-13 16:23:04 -05:00
trace_probe.h
trace_probe_tmpl.h
trace_recursion_record.c
trace_sched_switch.c
trace_sched_wakeup.c
trace_selftest.c
trace_selftest_dynamic.c
trace_seq.c
trace_stack.c
trace_stat.c
trace_stat.h
trace_synth.h
trace_syscalls.c tracing: Have syscall trace events use trace_event_buffer_lock_reserve() 2022-01-13 16:23:05 -05:00
trace_uprobe.c tracing/uprobes: Check the return value of kstrdup() for tu->filename 2022-01-13 16:23:04 -05:00
tracing_map.c tracing: Fix a kmemleak false positive in tracing_map 2021-12-01 21:04:34 -05:00
tracing_map.h