Re: [PATCH v5 12/17] perf: Skip user unwind if !current->mm
Peter Zijlstra <[email protected]> Thu, 24 Apr 2025 18:37:18 +0200
| Newsgroups | org.kernel.vger.linux-toolchains,org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users,org.kernel.vger.linux-trace-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Apr 24, 2025 at 12:25:41PM -0400, Steven Rostedt wrote: > From: Josh Poimboeuf <[email protected]> > > If the task doesn't have any memory, there's no stack to unwind. > > Signed-off-by: Josh Poimboeuf <[email protected]> > Signed-off-by: Steven Rostedt (Google) <[email protected]> > --- > Note from v4: https://lore.kernel.org/all/24cde1381495cd637f0d5663ab7629572bc0eca6.1737511963.git.jpoimboe@kernel.org/ > > - From the previous version, Peter Zijlstra brought up concern about > io_uring helpers, but this was never resolved. No update was made. What is there to resolve? If you want to check for kthreads, don't check for ->mm > > kernel/events/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/events/core.c b/kernel/events/core.c > index 009f34bd9e63..40b98b05fb7c 100644 > --- a/kernel/events/core.c > +++ b/kernel/events/core.c > @@ -8101,7 +8101,7 @@ struct perf_callchain_entry * > perf_callchain(struct perf_event *event, struct pt_regs *regs) > { > bool kernel = !event->attr.exclude_callchain_kernel; > - bool user = !event->attr.exclude_callchain_user; > + bool user = !event->attr.exclude_callchain_user && current->mm; > /* Disallow cross-task user callchains. */ > bool crosstask = event->ctx->task && event->ctx->task != current; > const u32 max_stack = event->attr.sample_max_stack; > -- > 2.47.2 > >