On Thu, Mar 25, 2021 at 08:10:51PM +0100, Marco Elver wrote:

> and therefore synthesized this fix on top:
> 
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 57de8d436efd..e77294c7e654 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -12400,7 +12400,7 @@ static void sync_child_event(struct perf_event 
> *child_event)
>       if (child_event->attr.inherit_stat) {
>               struct task_struct *task = child_event->ctx->task;
>  
> -             if (task)
> +             if (task && task != TASK_TOMBSTONE)
>                       perf_event_read_event(child_event, task);
>       }
>  
> which fixes the problem. My guess is that the parent and child are both
> racing to exit?
> 
> Does that make any sense?

Yes, I think it does. ACK

Reply via email to