Re: [PATCH v1 1/2] perf sched: Avoid segv if tp_handler not set
From: Namhyung Kim
Date: Mon Apr 06 2026 - 13:53:35 EST
On Fri, Apr 03, 2026 at 08:29:25AM -0700, Ian Rogers wrote:
> On Thu, Apr 2, 2026 at 7:42 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
> >
> > On Tue, Mar 31, 2026 at 10:59:52PM -0700, Ian Rogers wrote:
> > > On Thu, Mar 26, 2026 at 4:20 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
> > > >
> > > > On Fri, Mar 20, 2026 at 11:14:47PM -0700, Ian Rogers wrote:
> > > > > Doing a `perf sched record` then `perf sched stats report` crashes as
> > > > > the tp_handler isn't set. Add extra checks that tp_handler is set
> > > > > before accessing through it.
> > > >
> > > > Oh.. unintended use case. :) Probably better to add a dummy handler
> > > > for `perf sched stats report`.
> > >
> > > Perhaps. I'd prefer to land the simpler change as-is.
> >
> > Well.. I guess the dummy handler approach would be simpler and perform
> > better. :)
> >
> > Thanks,
> > Namhyung
> >
> >
> > diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
> > index d083e2bb770303a4..9fb5447f9014d026 100644
> > --- a/tools/perf/builtin-sched.c
> > +++ b/tools/perf/builtin-sched.c
> > @@ -4955,6 +4955,7 @@ int cmd_sched(int argc, const char **argv)
> > .switch_event = replay_switch_event,
> > .fork_event = replay_fork_event,
> > };
> > + struct trace_sched_handler stats_ops = {};
>
> Oh, because there's an existing null test on the function pointer we
> don't need dummy functions, which is what I thought you were asking
> for. I'm still not convinced this is very intention revealing, but if
> it works for you then you can have my reviewed-by tag.
Applied this and the patch 2 to perf-tools-next, thanks!
Best regards,
Namhyung