Re: [PATCH V9 3/7] perf: attach/detach PMU specific data

From: Peter Zijlstra
Date: Fri Mar 14 2025 - 09:00:28 EST


On Thu, Mar 13, 2025 at 05:02:38PM -0700, kan.liang@xxxxxxxxxxxxxxx wrote:

> @@ -12551,6 +12813,14 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
> if (err)
> return ERR_PTR(err);
>
> + if (event->attach_state & PERF_ATTACH_TASK_DATA) {
> + err = attach_perf_ctx_data(event);
> + if (err) {
> + security_perf_event_free(event);
> + return ERR_PTR(err);
> + }
> + }
> +
> /* symmetric to unaccount_event() in _free_event() */
> account_event(event);
>

This seems weird. We just pushed all the error handling into
__free_event(), and now you're adding one special case back.

Also, you've placed it after security_perf_event_alloc(), which I
_think_ wants to be last.