summaryrefslogtreecommitdiff
path: root/kernel/trace
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-07-29 16:06:05 +0100
committerMark Brown <broonie@kernel.org>2026-07-30 15:42:34 +0100
commitfbeac01a0d3ec80efec6e3912e1bf8b502545b4c (patch)
tree0c5cb4c87c62b526bad83374728ce30f028dd7e8 /kernel/trace
parentb5ad8af173cd48e57368d85f9870685b5f9c35b0 (diff)
downloadlinux-next-fbeac01a0d3ec80efec6e3912e1bf8b502545b4c.tar.gz
linux-next-fbeac01a0d3ec80efec6e3912e1bf8b502545b4c.zip
Revert "tracing: Expose tracepoint BTF ids via tracefs"
This reverts commit eadc0725ab8d38c05148fce49f8d5c6a0e01f062. ld: drivers/net/wireless/mediatek/mt76/usb_trace.o:(.bss+0x40): multiple definition of `__bpf_trace_btf_ids_dev_reg_evt'; drivers/net/wireless/mediatek/mt76/trace.o:(.bss+0x80): first defined here ld: drivers/media/platform/nvidia/tegra-vde/vde.o:(.bss+0x180): multiple definition of `__bpf_trace_btf_ids_register_access'; drivers/gpu/drm/tegra/trace.o:(.bss+0x0): first defined here Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'kernel/trace')
-rw-r--r--kernel/trace/trace_events.c80
-rw-r--r--kernel/trace/trace_syscalls.c17
2 files changed, 1 insertions, 96 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index d3ee45af15d4..3a6308a8376f 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -23,7 +23,6 @@
#include <linux/sort.h>
#include <linux/slab.h>
#include <linux/delay.h>
-#include <linux/btf.h>
#include <trace/events/sched.h>
#include <trace/syscall.h>
@@ -2227,61 +2226,6 @@ event_id_read(struct file *filp, char __user *ubuf, size_t cnt, loff_t *ppos)
}
#endif
-#ifdef CONFIG_BPF_EVENTS
-static ssize_t
-event_btf_ids_read(struct file *filp, char __user *ubuf, size_t cnt, loff_t *ppos)
-{
- struct trace_event_file *file;
- struct trace_event_call *call;
- const struct btf_type *t;
- struct module *mod = NULL;
- u32 raw_id = 0, tp_id = 0, obj_id = 0;
- const u32 *ids;
- struct btf *btf;
- char buf[128];
- int len;
-
- /* Module unload could free call->class and ids[] mid-read. */
- scoped_guard(mutex, &event_mutex) {
- file = event_file_file(filp);
- if (!file)
- return -ENODEV;
-
- call = file->event_call;
- ids = call->class->btf_ids;
- if (!ids)
- return -ENOENT;
- if (!(call->flags & TRACE_EVENT_FL_DYNAMIC))
- mod = (struct module *)call->module;
-
- btf = btf_get_module_btf(mod);
- if (IS_ERR_OR_NULL(btf))
- return -ENOENT;
-
- /* Module-local ids in ids[] need base+local relocation. */
- tp_id = btf_relocate_id(btf, ids[1]);
-
- /*
- * Without FL_TRACEPOINT the dispatcher is shared (e.g. all
- * per-syscall events fan out from __bpf_trace_sys_enter), so
- * raw_btf_id has no per-event attach point — report 0.
- */
- if (call->flags & TRACE_EVENT_FL_TRACEPOINT) {
- t = btf_type_by_id(btf, btf_relocate_id(btf, ids[0]));
- raw_id = t ? t->type : 0;
- }
- obj_id = btf_obj_id(btf);
- btf_put(btf);
- }
-
- len = scnprintf(buf, sizeof(buf),
- "btf_obj_id: %u\nraw_btf_id: %u\ntp_btf_id: %u\n",
- obj_id, raw_id, tp_id);
-
- return simple_read_from_buffer(ubuf, cnt, ppos, buf, len);
-}
-#endif
-
static ssize_t
event_filter_read(struct file *filp, char __user *ubuf, size_t cnt,
loff_t *ppos)
@@ -2782,13 +2726,6 @@ static const struct file_operations ftrace_event_id_fops = {
};
#endif
-#ifdef CONFIG_BPF_EVENTS
-static const struct file_operations ftrace_event_btf_ids_fops = {
- .read = event_btf_ids_read,
- .llseek = default_llseek,
-};
-#endif
-
static const struct file_operations ftrace_event_filter_fops = {
.open = tracing_open_file_tr,
.read = event_filter_read,
@@ -3182,14 +3119,6 @@ static int event_callback(const char *name, umode_t *mode, void **data,
}
#endif
-#ifdef CONFIG_BPF_EVENTS
- if (call->class->btf_ids && strcmp(name, "btf_ids") == 0) {
- *mode = TRACE_MODE_READ;
- *fops = &ftrace_event_btf_ids_fops;
- return 1;
- }
-#endif
-
#ifdef CONFIG_HIST_TRIGGERS
if (strcmp(name, "hist") == 0) {
*mode = TRACE_MODE_READ;
@@ -3244,14 +3173,7 @@ event_create_dir(struct eventfs_inode *parent, struct trace_event_file *file)
.callback = event_callback,
},
#endif
-#ifdef CONFIG_BPF_EVENTS
- {
- .name = "btf_ids",
- .callback = event_callback,
- },
-#endif
-#define NR_RO_EVENT_ENTRIES (1 + IS_ENABLED(CONFIG_PERF_EVENTS) + \
- IS_ENABLED(CONFIG_BPF_EVENTS))
+#define NR_RO_EVENT_ENTRIES (1 + IS_ENABLED(CONFIG_PERF_EVENTS))
/* Readonly files must be above this line and counted by NR_RO_EVENT_ENTRIES. */
{
.name = "enable",
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index 48ef1a93e576..8a4f3c75e39f 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -1303,26 +1303,12 @@ struct trace_event_functions exit_syscall_print_funcs = {
.trace = print_syscall_exit,
};
-#ifdef CONFIG_BPF_EVENTS
-/*
- * BTF id lists generated by DECLARE_EVENT_CLASS for the sys_enter and
- * sys_exit tracepoints. The auto-generated event_class_sys_{enter,exit}
- * is unused (per-syscall events share the handcrafted classes below),
- * but the id lists themselves are global and reusable.
- */
-extern u32 __bpf_trace_btf_ids_sys_enter[];
-extern u32 __bpf_trace_btf_ids_sys_exit[];
-#endif
-
struct trace_event_class __refdata event_class_syscall_enter = {
.system = "syscalls",
.reg = syscall_enter_register,
.fields_array = syscall_enter_fields_array,
.get_fields = syscall_get_enter_fields,
.raw_init = init_syscall_trace,
-#ifdef CONFIG_BPF_EVENTS
- .btf_ids = __bpf_trace_btf_ids_sys_enter,
-#endif
};
struct trace_event_class __refdata event_class_syscall_exit = {
@@ -1335,9 +1321,6 @@ struct trace_event_class __refdata event_class_syscall_exit = {
},
.fields = LIST_HEAD_INIT(event_class_syscall_exit.fields),
.raw_init = init_syscall_trace,
-#ifdef CONFIG_BPF_EVENTS
- .btf_ids = __bpf_trace_btf_ids_sys_exit,
-#endif
};
unsigned long __init __weak arch_syscall_addr(int nr)