Re: [PATCH 0/4] perf: Fix leaked events when sigtrap = 1

From: Ian Rogers
Date: Fri Mar 29 2024 - 23:24:12 EST


On Fri, Mar 29, 2024 at 4:58 PM Frederic Weisbecker <frederic@xxxxxxxxxx> wrote:
>
> While looking at task_work users I just noticed that perf doesn't flush
> its own upon event exiting. This looks especially problematic with child
> events. Please have a thourough look at the last patch, I may easily
> have missed something within the maze.
>
> Frederic Weisbecker (4):
> task_work: s/task_work_cancel()/task_work_cancel_func()/
> task_work: Introduce task_work_cancel() again
> perf: Fix event leak upon exit
> perf: Fix event leak upon exec and file release
>
> include/linux/perf_event.h | 1 +
> include/linux/task_work.h | 3 ++-
> kernel/events/core.c | 40 +++++++++++++++++++++++++++++++-------
> kernel/irq/manage.c | 2 +-
> kernel/task_work.c | 34 +++++++++++++++++++++++++++-----
> security/keys/keyctl.c | 2 +-
> 6 files changed, 67 insertions(+), 15 deletions(-)

Thanks for this! I wonder if this relates to fuzzing failures like:
https://lore.kernel.org/linux-perf-users/CAP-5=fUa+-Tj2b_hxk96Qg5=Qu7jYHgHREbsmBa2ZmuF-X9QaA@xxxxxxxxxxxxxx/
"[ 2519.138665] unexpected event refcount: 2; ptr=000000009c56b097"

Thanks,
Ian

> --
> 2.44.0
>