linux/kernel/trace
Masami Hiramatsu 3b42a4c83a tracing: trigger: Replace unneeded RCU-list traversals
With CONFIG_PROVE_RCU_LIST, I had many suspicious RCU warnings
when I ran ftracetest trigger testcases.

-----
  # dmesg -c > /dev/null
  # ./ftracetest test.d/trigger
  ...
  # dmesg | grep "RCU-list traversed" | cut -f 2 -d ] | cut -f 2 -d " "
  kernel/trace/trace_events_hist.c:6070
  kernel/trace/trace_events_hist.c:1760
  kernel/trace/trace_events_hist.c:5911
  kernel/trace/trace_events_trigger.c:504
  kernel/trace/trace_events_hist.c:1810
  kernel/trace/trace_events_hist.c:3158
  kernel/trace/trace_events_hist.c:3105
  kernel/trace/trace_events_hist.c:5518
  kernel/trace/trace_events_hist.c:5998
  kernel/trace/trace_events_hist.c:6019
  kernel/trace/trace_events_hist.c:6044
  kernel/trace/trace_events_trigger.c:1500
  kernel/trace/trace_events_trigger.c:1540
  kernel/trace/trace_events_trigger.c:539
  kernel/trace/trace_events_trigger.c:584
-----

I investigated those warnings and found that the RCU-list
traversals in event trigger and hist didn't need to use
RCU version because those were called only under event_mutex.

I also checked other RCU-list traversals related to event
trigger list, and found that most of them were called from
event_hist_trigger_func() or hist_unregister_trigger() or
register/unregister functions except for a few cases.

Replace these unneeded RCU-list traversals with normal list
traversal macro and lockdep_assert_held() to check the
event_mutex is held.

Link: http://lkml.kernel.org/r/157680910305.11685.15110237954275915782.stgit@devnote2

Reviewed-by: Tom Zanussi <zanussi@kernel.org>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2020-01-13 15:59:11 -05:00
..
blktrace.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
bpf_trace.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-12-03 09:29:50 -08:00
fgraph.c tracing: Define MCOUNT_INSN_SIZE when not defined without direct calls 2020-01-02 21:56:44 -05:00
ftrace_internal.h treewide: Rename rcu_dereference_raw_notrace() to _check() 2019-08-01 14:16:21 -07:00
ftrace.c tracing: Rename trace_buffer to array_buffer 2020-01-13 13:19:38 -05:00
Kconfig tracing/boot: Add boot-time tracing 2020-01-13 13:19:41 -05:00
Makefile tracing/boot: Add boot-time tracing 2020-01-13 13:19:41 -05:00
power-traces.c
preemptirq_delay_test.c preemptirq_delay_test: Add the burst feature and a sysfs trigger 2019-11-13 09:37:28 -05:00
ring_buffer_benchmark.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
ring_buffer.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
rpm-traces.c
trace_benchmark.c trace: Use pr_warn instead of pr_warning 2019-10-18 15:01:57 +02:00
trace_benchmark.h
trace_boot.c tracing/boot: Add function tracer filter options 2020-01-13 13:19:42 -05:00
trace_branch.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
trace_clock.c
trace_dynevent.c tracing: Add tracing_check_open_get_tr() 2019-10-12 20:44:07 -04:00
trace_dynevent.h tracing/dynevent: Pass extra arguments to match operation 2019-08-31 12:19:38 -04:00
trace_entries.h
trace_event_perf.c Merge branch 'perf/urgent' into perf/core, to pick up fixes 2019-10-28 12:38:26 +01:00
trace_events_filter_test.h
trace_events_filter.c tracing: Avoid memory leak in process_system_preds() 2019-12-19 18:24:17 -05:00
trace_events_hist.c tracing: trigger: Replace unneeded RCU-list traversals 2020-01-13 15:59:11 -05:00
trace_events_inject.c tracing: Initialize val to zero in parse_entry of inject code 2020-01-02 19:04:57 -05:00
trace_events_trigger.c tracing: trigger: Replace unneeded RCU-list traversals 2020-01-13 15:59:11 -05:00
trace_events.c tracing: kprobes: Output kprobe event to printk buffer 2020-01-13 13:19:40 -05:00
trace_export.c tracing: Make internal ftrace events static 2019-11-13 09:37:29 -05:00
trace_functions_graph.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
trace_functions.c tracing: Rename trace_buffer to array_buffer 2020-01-13 13:19:38 -05:00
trace_hwlat.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
trace_irqsoff.c tracing: Rename trace_buffer to array_buffer 2020-01-13 13:19:38 -05:00
trace_kdb.c tracing: Rename trace_buffer to array_buffer 2020-01-13 13:19:38 -05:00
trace_kprobe_selftest.c
trace_kprobe_selftest.h
trace_kprobe.c tracing/boot Add kprobe event support 2020-01-13 13:19:42 -05:00
trace_mmiotrace.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
trace_nop.c
trace_output.c tracing: Rename trace_buffer to array_buffer 2020-01-13 13:19:38 -05:00
trace_output.h
trace_preemptirq.c
trace_printk.c tracing: Add locked_down checks to the open calls of files created for tracefs 2019-10-12 20:48:06 -04:00
trace_probe_tmpl.h tracing/probe: Support user-space dereference 2019-05-25 23:04:42 -04:00
trace_probe.c tracing/probe: Fix to check the difference of nr_args before adding probe 2019-09-28 17:07:53 -04:00
trace_probe.h tracing/probe: Reject exactly same probe event 2019-09-19 11:09:16 -04:00
trace_sched_switch.c
trace_sched_wakeup.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
trace_selftest_dynamic.c
trace_selftest.c tracing: Rename trace_buffer to array_buffer 2020-01-13 13:19:38 -05:00
trace_seq.c tracing: Fix indentation issue 2020-01-03 15:20:46 -05:00
trace_stack.c tracing: Have stack tracer compile when MCOUNT_INSN_SIZE is not defined 2020-01-02 22:04:07 -05:00
trace_stat.c tracing: Use generic type for comparator function 2019-11-14 13:15:11 -05:00
trace_stat.h tracing: Use generic type for comparator function 2019-11-14 13:15:11 -05:00
trace_syscalls.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
trace_uprobe.c tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
trace.c tracing/boot: Add cpu_mask option support 2020-01-13 13:19:42 -05:00
trace.h tracing: Make struct ring_buffer less ambiguous 2020-01-13 13:19:38 -05:00
tracing_map.c tracing: Have the histogram compare functions convert to u64 first 2019-12-19 18:26:00 -05:00
tracing_map.h