Re: [PATCH bpf-next v6 00/10] bpf: fsession support

From: Alexei Starovoitov
Date: Mon Jan 05 2026 - 23:21:13 EST


On Mon, Jan 5, 2026 at 7:05 PM Menglong Dong <menglong.dong@xxxxxxxxx> wrote:
>
> On 2026/1/6 05:20 Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> write:
> > On Sun, Jan 4, 2026 at 4:28 AM Menglong Dong <menglong8.dong@xxxxxxxxx> wrote:
> > >
> > > Hi, all.
> > >
> [......]
> > > Maybe it's possible to reuse the existing bpf_session_cookie() and
> > > bpf_session_is_return(). First, we move the nr_regs from stack to struct
> > > bpf_tramp_run_ctx, as Andrii suggested before. Then, we define the session
> > > cookies as flexible array in bpf_tramp_run_ctx like this:
> > > struct bpf_tramp_run_ctx {
> > > struct bpf_run_ctx run_ctx;
> > > u64 bpf_cookie;
> > > struct bpf_run_ctx *saved_run_ctx;
> > > u64 func_meta; /* nr_args, cookie_index, etc */
> > > u64 fsession_cookies[];
> > > };
> > >
> > > The problem of this approach is that we can't inlined the bpf helper
> > > anymore, such as get_func_arg, get_func_ret, get_func_arg_cnt, etc, as
> > > we can't use the "current" in BPF assembly.
> > >
> >
> > We can, as Alexei suggested on your other patch set. Is this still a
> > valid concern?
>
> Yeah, with the support of BPF_MOV64_PERCPU_REG, it's much easier
> now.
>
> So what approach should I use now? Change the prototype of
> bpf_session_is_return/bpf_session_cookie, as Alexei suggested, or
> use the approach here? I think both works, and I'm a little torn
> now. Any suggestions?

I think adding 'void *ctx' to existing kfuncs makes tramp-based
kfuncs faster, since less work needs to be done to store/read
the same data from run_ctx/current.
So that's my preference.