On Tue, Jan 21, 2025 at 06:31:20PM -0800, Josh Poimboeuf wrote:

> +/* entry-from-user counter */
> +static DEFINE_PER_CPU(u64, unwind_ctx_ctr);

AFAICT from the below, this thing does *not* count entry-from-user. It
might count a subset, but I need to stare longer.

> +/*
> + * Read the task context cookie, first initializing it if this is the first
> + * call to get_cookie() since the most recent entry from user.
> + */
> +static u64 get_cookie(struct unwind_task_info *info)
> +{
> +     u64 ctx_ctr;
> +     u64 cookie;
> +     u64 cpu;
> +
> +     guard(irqsave)();
> +
> +     cookie = info->cookie;
> +     if (cookie)
> +             return cookie;
> +
> +
> +     cpu = raw_smp_processor_id();
> +     ctx_ctr = __this_cpu_inc_return(unwind_ctx_ctr);
> +     info->cookie = ctx_to_cookie(cpu, ctx_ctr);
> +
> +     return cookie;
> +
> +}
> +
> +static void unwind_deferred_task_work(struct callback_head *head)
> +{

> +     cookie = get_cookie(info);

> +}
> +

> +int unwind_deferred_request(struct unwind_work *work, u64 *cookie)
> +{

> +     *cookie = get_cookie(info);

> +}



Reply via email to