[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aD73Hf6Q7rjfCFAC@e129823.arm.com>
Date: Tue, 3 Jun 2025 14:22:37 +0100
From: Yeoreum Yun <yeoreum.yun@....com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: David Wang <00107082@....com>, mingo@...hat.com, acme@...nel.org,
namhyung@...nel.org, mingo@...nel.org, leo.yan@....com,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] perf/core: restore __perf_remove_from_context when
DETACH_EXIT not set
Hi Peter,
> On Tue, Jun 03, 2025 at 02:50:56PM +0200, Peter Zijlstra wrote:
> > On Tue, Jun 03, 2025 at 06:44:58PM +0800, David Wang wrote:
> >
> >
> > > (As yeoreum.yun@....com pointed out, the change in perf_remove_from_context() made
> > > perf_event_set_state() happened before list_del_event(), resulting in perf_cgroup_event_disable()
> > > not called.)
> >
> > Aah, d'0h. Let me see what we should do there.
>
> Does this help? This way event_sched_out() will call
> perf_cgroup_event_disable().
>
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index f34c99f8ce8f..adbb0372825f 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -2494,9 +2494,9 @@ __perf_remove_from_context(struct perf_event *event,
> if (flags & DETACH_REVOKE)
> state = PERF_EVENT_STATE_REVOKED;
> if (flags & DETACH_DEAD) {
> - event->pending_disable = 1;
> state = PERF_EVENT_STATE_DEAD;
> }
> + event->pending_disable = 1;
I think it would break if event->state is "PERF_EVENT_STATE_ERROR".
TBH, there is the patch to solve this problem:
https://lore.kernel.org/all/20250602184049.4010919-1-yeoreum.yun@arm.com/
Does it have a problem?
Thanks.
--
Sincerely,
Yeoreum Yun
Powered by blists - more mailing lists