Re: [PATCH v6 5/5] perf: Support deferred user callchains for per CPU events

From: Namhyung Kim
Date: Thu May 01 2025 - 16:21:14 EST


On Wed, Apr 30, 2025 at 09:32:07PM -0400, Steven Rostedt wrote:
> @@ -13100,13 +13269,20 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
> }
> }
>
> + /* Setup unwind deferring for per CPU events */
> + if (event->attr.defer_callchain && !task) {
> + err = perf_add_unwind_deferred(event);
> + if (err)
> + return ERR_PTR(err);
> + }
> +
> err = security_perf_event_alloc(event);
> if (err)
> return ERR_PTR(err);

It seems perf_remove_unwind_deferred() is not called from
__free_event() - with double underscores.

Thanks,
Namhyung


>
> if (event->attr.defer_callchain)
> init_task_work(&event->pending_unwind_work,
> - perf_event_callchain_deferred);
> + perf_event_deferred_task);
>
> /* symmetric to unaccount_event() in _free_event() */
> account_event(event);
> --
> 2.47.2
>
>