Re: [PATCH v3 11/19] unwind: Add deferred user space unwinding API
From: Josh Poimboeuf
Date: Tue Oct 29 2024 - 13:18:05 EST
On Tue, Oct 29, 2024 at 02:56:17PM +0100, Peter Zijlstra wrote:
> On Mon, Oct 28, 2024 at 02:47:38PM -0700, Josh Poimboeuf wrote:
>
> > + * The only exception is when the task has migrated to another CPU, *and* this
> > + * is called while the task work is running (or has already run). Then a new
> > + * cookie will be generated and the callback will be called again for the new
> > + * cookie.
>
> So that's a bit crap. The user stack won't change for having been
> migrated.
>
> So perf can readily use the full u64 cookie value as a sequence number,
> since the whole perf record will already have the TID of the task in.
> Mixing in this CPU number for no good reason and causing trouble like
> this just doesn't make sense to me.
>
> If ftrace needs brain damage like this, can't we push this to the user?
>
> That is, do away with the per-cpu sequence crap, and add a per-task
> counter that is incremented for every return-to-userspace.
That would definitely make things easier for me, though IIRC Steven and
Mathieu had some concerns about TID wrapping over days/months/years.
With that mindset I suppose the per-CPU counter could also wrap, though
that could be mitigated by making the cookie a struct with more bits.
--
Josh