All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Linux Trace Kernel <linux-trace-kernel@vger.kernel.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Ian Rogers <irogers@google.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Jiri Olsa <jolsa@kernel.org>
Subject: Re: [PATCH] tracing: Do not register unsupported perf events
Date: Tue, 23 Dec 2025 10:22:18 -0800	[thread overview]
Message-ID: <aUrd2k8ckouCB_bQ@google.com> (raw)
In-Reply-To: <20251216182440.147e4453@gandalf.local.home>

Hi Steve,

On Tue, Dec 16, 2025 at 06:24:40PM -0500, Steven Rostedt wrote:
> From: Steven Rostedt <rostedt@goodmis.org>
> 
> Synthetic events currently do not have a function to register perf events.
> This leads to calling the tracepoint register functions with a NULL
> function pointer which triggers:
> 
>  ------------[ cut here ]------------
>  WARNING: kernel/tracepoint.c:175 at tracepoint_add_func+0x357/0x370, CPU#2: perf/2272
>  Modules linked in: kvm_intel kvm irqbypass
>  CPU: 2 UID: 0 PID: 2272 Comm: perf Not tainted 6.18.0-ftest-11964-ge022764176fc-dirty #323 PREEMPTLAZY
>  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014
>  RIP: 0010:tracepoint_add_func+0x357/0x370
>  Code: 28 9c e8 4c 0b f5 ff eb 0f 4c 89 f7 48 c7 c6 80 4d 28 9c e8 ab 89 f4 ff 31 c0 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc cc <0f> 0b 49 c7 c6 ea ff ff ff e9 ee fe ff ff 0f 0b e9 f9 fe ff ff 0f
>  RSP: 0018:ffffabc0c44d3c40 EFLAGS: 00010246
>  RAX: 0000000000000001 RBX: ffff9380aa9e4060 RCX: 0000000000000000
>  RDX: 000000000000000a RSI: ffffffff9e1d4a98 RDI: ffff937fcf5fd6c8
>  RBP: 0000000000000001 R08: 0000000000000007 R09: ffff937fcf5fc780
>  R10: 0000000000000003 R11: ffffffff9c193910 R12: 000000000000000a
>  R13: ffffffff9e1e5888 R14: 0000000000000000 R15: ffffabc0c44d3c78
>  FS:  00007f6202f5f340(0000) GS:ffff93819f00f000(0000) knlGS:0000000000000000
>  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>  CR2: 000055d3162281a8 CR3: 0000000106a56003 CR4: 0000000000172ef0
>  Call Trace:
>   <TASK>
>   tracepoint_probe_register+0x5d/0x90
>   synth_event_reg+0x3c/0x60
>   perf_trace_event_init+0x204/0x340
>   perf_trace_init+0x85/0xd0
>   perf_tp_event_init+0x2e/0x50
>   perf_try_init_event+0x6f/0x230
>   ? perf_event_alloc+0x4bb/0xdc0
>   perf_event_alloc+0x65a/0xdc0
>   __se_sys_perf_event_open+0x290/0x9f0
>   do_syscall_64+0x93/0x7b0
>   ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
>   ? trace_hardirqs_off+0x53/0xc0
>   entry_SYSCALL_64_after_hwframe+0x76/0x7e
> 
> Instead, have the code return -ENODEV, which doesn't warn and has perf
> error out with:
> 
>  # perf record -e synthetic:futex_wait
> Error:
> The sys_perf_event_open() syscall returned with 19 (No such device) for event (synthetic:futex_wait).
> "dmesg | grep -i perf" may provide additional information.
> 
> Ideally perf should support synthetic events, but for now just fix the
> warning. The support can come later.
> 
> Cc: stable@vger.kernel.org
> Fixes: 4b147936fa509 ("tracing: Add support for 'synthetic' events")
> Reported-by: Ian Rogers <irogers@google.com>
> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>

Reviewed-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

> ---
>  kernel/trace/trace_events.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
> index a5a93d243047..754b14ca87a7 100644
> --- a/kernel/trace/trace_events.c
> +++ b/kernel/trace/trace_events.c
> @@ -710,6 +710,8 @@ int trace_event_reg(struct trace_event_call *call,
>  
>  #ifdef CONFIG_PERF_EVENTS
>  	case TRACE_REG_PERF_REGISTER:
> +		if (!call->class->perf_probe)
> +			return -ENODEV;
>  		return tracepoint_probe_register(call->tp,
>  						 call->class->perf_probe,
>  						 call);
> -- 
> 2.51.0
> 

  parent reply	other threads:[~2025-12-23 18:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-16 23:24 [PATCH] tracing: Do not register unsupported perf events Steven Rostedt
2025-12-22  9:27 ` Jiri Olsa
2025-12-23 18:22 ` Namhyung Kim [this message]
2025-12-23 21:46   ` Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aUrd2k8ckouCB_bQ@google.com \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.