On Sat, Oct 18, 2025 at 7:21 AM Menglong Dong <[email protected]> wrote: > /* mov rax, qword ptr [rbp - rounded_stack_depth - 8] */ > #define LOAD_TRAMP_TAIL_CALL_CNT_PTR(stack) \ > __LOAD_TCC_PTR(-round_up(stack, 8) - 8) > @@ -3179,8 +3270,10 @@ static int __arch_prepare_bpf_trampoline(struct > bpf_tramp_image *im, void *rw_im > void *func_addr) > { > int i, ret, nr_regs = m->nr_args, stack_size = 0; > - int regs_off, nregs_off, ip_off, run_ctx_off, arg_stack_off, rbx_off; > + int regs_off, nregs_off, session_off, ip_off, run_ctx_off, > + arg_stack_off, rbx_off; > struct bpf_tramp_links *fentry = &tlinks[BPF_TRAMP_FENTRY]; > + struct bpf_tramp_links *session = &tlinks[BPF_TRAMP_SESSION]; > struct bpf_tramp_links *fexit = &tlinks[BPF_TRAMP_FEXIT]; > struct bpf_tramp_links *fmod_ret = &tlinks[BPF_TRAMP_MODIFY_RETURN]; > void *orig_call = func_addr; > @@ -3222,6 +3315,8 @@ static int __arch_prepare_bpf_trampoline(struct > bpf_tramp_image *im, void *rw_im > * > * RBP - nregs_off [ regs count ] always > * > + * RBP - session_off [ session flags ] tracing session > + * > * RBP - ip_off [ traced function ] BPF_TRAMP_F_IP_ARG flag > * > * RBP - rbx_off [ rbx value ] always > @@ -3246,6 +3341,8 @@ static int __arch_prepare_bpf_trampoline(struct > bpf_tramp_image *im, void *rw_im > /* regs count */ > stack_size += 8; > nregs_off = stack_size; > + stack_size += 8; > + session_off = stack_size;
Unconditional stack increase? :(
