On Wed, Jul 10, 2024 at 10:45 PM <flyingpenghao@xxxxxxxxx> wrote: > > > By tracing the call chain, we found that do_misc_fixups consumed a lot > of stack space. mark it as noinline_for_stack to prevent it from spreading > to bpf_check's stack size. ... > -static int do_misc_fixups(struct bpf_verifier_env *env) > +static noinline_for_stack int do_misc_fixups(struct bpf_verifier_env *env) Now we're getting somewhere, but this is not a fix. It may shut up the warn, but it will only increase the total stack usage. Looking at C code do_misc_fixups() needs ~200 bytes worth of stack space for insn_buf[16] and spill/fill. That's far from the artificial 2k limit. Please figure out what exact variable is causing kasan to consume so much stack. You may need to analyze compiler internals and do more homework. What is before/after stack usage ? with and without kasan? With gcc try +CFLAGS_verifier.o += -fstack-usage I see: sort -k2 -n kernel/bpf/verifier.su |tail -10 ../kernel/bpf/verifier.c:13087:12:adjust_ptr_min_max_vals 240 dynamic,bounded ../kernel/bpf/verifier.c:20804:12:do_check_common 248 dynamic,bounded ../kernel/bpf/verifier.c:19151:12:convert_ctx_accesses 256 static ../kernel/bpf/verifier.c:7450:12:check_mem_reg 256 static ../kernel/bpf/verifier.c:7482:12:check_kfunc_mem_size_reg 256 static ../kernel/bpf/verifier.c:10268:12:check_helper_call.isra 272 dynamic,bounded ../kernel/bpf/verifier.c:21562:5:bpf_check 296 dynamic,bounded ../kernel/bpf/verifier.c:19860:12:do_misc_fixups 320 static ../kernel/bpf/verifier.c:13991:12:adjust_reg_min_max_vals 392 static ../kernel/bpf/verifier.c:12280:12:check_kfunc_call.isra 408 dynamic,bounded do_misc_fixups() is not the smallest, but not that large either. Do in-depth analysis instead of silencing the warn. pw-bot: cr