Re: perf AUX: race causes poll() hang
From: Peter Zijlstra
Date: Tue May 19 2026 - 05:18:40 EST
On Tue, May 19, 2026 at 08:58:52AM +0300, Adrian Hunter wrote:
> > @@ -7612,10 +7620,8 @@ static void __perf_pending_disable(struct perf_event *event)
> > * Yay, we hit home and are in the context of the event.
> > */
> > if (cpu == smp_processor_id()) {
> > - if (event->pending_disable) {
> > - event->pending_disable = 0;
> > + if (event->pending_disable)
>
> At this point, can _perf_event_enable() on another CPU decide
> to do nothing ("Already running, nothing to do"), but then the
> disable below contradicts that?
Should be serialized on ctx->lock IIRC
> > perf_event_disable_local(event);
> > - }
> > return;
> > }
> >
>