twx-linux/kernel/trace
Steven Rostedt (Google) f568fbe8c6 tracing: Allow creating instances with specified system events
[ Upstream commit d23569979ca1cd139a42c410e0c7b9e6014c3b3a ]

A trace instance may only need to enable specific events. As the eventfs
directory of an instance currently creates all events which adds overhead,
allow internal instances to be created with just the events in systems
that they care about. This currently only deals with systems and not
individual events, but this should bring down the overhead of creating
instances for specific use cases quite bit.

The trace_array_get_by_name() now has another parameter "systems". This
parameter is a const string pointer of a comma/space separated list of
event systems that should be created by the trace_array. (Note if the
trace_array already exists, this parameter is ignored).

The list of systems is saved and if a module is loaded, its events will
not be added unless the system for those events also match the systems
string.

Link: https://lore.kernel.org/linux-trace-kernel/20231213093701.03fddec0@gandalf.local.home

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Arun Easi   <aeasi@marvell.com>
Cc: Daniel Wagner <dwagner@suse.de>
Tested-by: Dmytro Maluka <dmaluka@chromium.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Stable-dep-of: 0b4ffbe4888a ("tracing: Correct the refcount if the hist/hist_debug file fails to open")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-04-10 14:37:41 +02:00
..
rv rv: Update rv_en(dis)able_monitor doc to match kernel-doc 2024-06-12 11:12:49 +02:00
blktrace.c
bpf_trace.c bpf: Use preempt_count() directly in bpf_send_signal_common() 2025-04-10 14:37:30 +02:00
bpf_trace.h
error_report-traces.c
fgraph.c
fprobe.c
ftrace_internal.h
ftrace.c ftrace: Avoid potential division by zero in function_stat_show() 2025-03-07 16:45:44 +01:00
Kconfig tracing: Build event generation tests only as modules 2024-06-27 13:49:05 +02:00
kprobe_event_gen_test.c
Makefile
pid_list.c trace/pid_list: Change gfp flags in pid_list_fill_irq() 2024-08-03 08:54:17 +02:00
pid_list.h
power-traces.c
preemptirq_delay_test.c tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test 2024-06-27 13:49:14 +02:00
rethook.c
ring_buffer_benchmark.c
ring_buffer.c ring-buffer: Fix bytes_dropped calculation issue 2025-04-10 14:37:35 +02:00
rpm-traces.c
synth_event_gen_test.c
trace_benchmark.c
trace_benchmark.h
trace_boot.c tracing: Allow creating instances with specified system events 2025-04-10 14:37:41 +02:00
trace_branch.c
trace_btf.c
trace_btf.h
trace_clock.c tracing: Use atomic64_inc_return() in trace_clock_counter() 2024-12-14 20:00:10 +01:00
trace_dynevent.c
trace_dynevent.h
trace_entries.h
trace_eprobe.c tracing/eprobe: Fix to release eprobe when failed to add dyn_event 2024-12-14 20:00:20 +01:00
trace_event_perf.c trace/trace_event_perf: remove duplicate samples on the first tracepoint event 2024-12-09 10:32:12 +01:00
trace_events_filter_test.h
trace_events_filter.c
trace_events_hist.c tracing: Fix bad hist from corrupting named_triggers list 2025-03-07 16:45:44 +01:00
trace_events_inject.c tracing: Have format file honor EVENT_FILE_FL_FREED 2024-09-04 13:28:22 +02:00
trace_events_synth.c
trace_events_trigger.c tracing: Have format file honor EVENT_FILE_FL_FREED 2024-09-04 13:28:22 +02:00
trace_events_user.c tracing/user_events: Fix non-spaced field matching 2024-06-12 11:12:11 +02:00
trace_events.c tracing: Allow creating instances with specified system events 2025-04-10 14:37:41 +02:00
trace_export.c
trace_fprobe.c tracing: tprobe-events: Fix a memory leak when tprobe with $retval 2025-03-13 12:58:23 +01:00
trace_functions_graph.c
trace_functions.c ftrace: Correct preemption accounting for function tracing. 2025-02-27 04:10:53 -08:00
trace_hwlat.c tracing/hwlat: Fix a race during cpuhp processing 2024-10-10 11:57:59 +02:00
trace_irqsoff.c
trace_kdb.c
trace_kprobe_selftest.c
trace_kprobe_selftest.h
trace_kprobe.c tracing/kprobe: Make trace_kprobe's module callback called after jump_label update 2025-01-02 10:32:03 +01:00
trace_mmiotrace.c
trace_nop.c
trace_osnoise.c tracing/osnoise: Fix resetting of tracepoints 2025-02-17 09:40:39 +01:00
trace_output.c tracing: Check "%s" dereference via the field and not the TP_printk format 2025-01-09 13:31:55 +01:00
trace_output.h
trace_preemptirq.c
trace_printk.c
trace_probe_kernel.h
trace_probe_tmpl.h tracing/probes: Support $argN in return probe (kprobe and fprobe) 2024-11-01 01:58:26 +01:00
trace_probe.c tracing: probes: Fix to zero initialize a local variable 2024-11-01 01:58:34 +01:00
trace_probe.h tracing: probe-events: Remove unused MAX_ARG_BUF_LEN macro 2025-03-13 12:58:29 +01:00
trace_recursion_record.c
trace_sched_switch.c
trace_sched_wakeup.c
trace_selftest_dynamic.c
trace_selftest.c
trace_seq.c tracing: Move readpos from seq_buf to trace_seq 2025-01-09 13:31:55 +01:00
trace_stack.c
trace_stat.c
trace_stat.h
trace_synth.h
trace_syscalls.c tracing/ftrace: disable preemption in syscall probe 2024-12-14 20:00:10 +01:00
trace_uprobe.c bpf: Fix theoretical prog_array UAF in __uprobe_perf_func() 2024-12-19 18:11:25 +01:00
trace.c tracing: Allow creating instances with specified system events 2025-04-10 14:37:41 +02:00
trace.h tracing: Allow creating instances with specified system events 2025-04-10 14:37:41 +02:00
tracing_map.c tracing: Fix cmp_entries_dup() to respect sort() comparison rules 2024-12-14 19:59:52 +01:00
tracing_map.h