Thread (45 messages) flat view 45 messages, 5 authors, 2025-07-16

Re: [PATCH v13 10/14] unwind: Clear unwind_mask on exit back to user space

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2025-07-15 18:26:19
Also in: bpf, lkml

On Tue, 15 Jul 2025 14:06:50 -0400
Steven Rostedt [off-list ref] wrote:
quoted
quoted
quoted
+ * Return: 0 if the callback successfully was queued.
+ *         UNWIND_ALREADY_PENDING if the the callback was already queued.
+ *         UNWIND_ALREADY_EXECUTED if the callback was already called
+ *                (and will not be called again)
  *         Negative if there's an error.
  *         @cookie holds the cookie of the first request by any user
  */      
Lots of babbling in the Changelog, but no real elucidation as to why you
need this second return value.

AFAICT it serves no real purpose; the users of this function should not
care. The only difference is that the unwind reference (your cookie)
becomes a backward reference instead of a forward reference. But why
would anybody care?    
Older versions of the code required it. I think I can remove it now.  
Ah it is still used in the perf code:

perf_callchain() has:

        if (defer_user) {
                int ret = deferred_request(event);
                if (!ret)
                        local_inc(&event->ctx->nr_no_switch_fast);
Hmm, I guess this could work if it returned non zero for both already
queued and already executed. So it doesn't need to be two different
values.

-- Steve

                else if (ret < 0)
                        defer_user = false;
        }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help