diff options
| author | Eduard Zingerman <eddyz87@gmail.com> | 2026-10-09 03:47:54 -0700 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2026-10-09 20:29:14 +0000 |
| commit | a2052333e6f97b6326b3adb32f1eafc5d088bd4a (patch) | |
| tree | f4d77bbc0885da7830ad4c3dbed9ca819c938f4d /kernel | |
| parent | 088a5477a9bdb410169ff158a581bc2585db546c (diff) | |
bpf: Bpf_func_state size optimization
Pack bpf_reg_state to bring it's size from 88 bytes to 80.
Consequently, bpf_func_state changes from 1048 to 960.
Thus bpf_func_state moves from 2K to 1K allocator bucket.
1K bucket is the one it fit before the SCEV series.
With this optimization SCEV increases memory consumption on a subset
of Meta internal programs by 3%, without this optimization the
increase is 48%.
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://patch.msgid.link/20261009-scev-minimal-rebase-v3-36-bcba9bc53ac9@gmail.com
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/bpf/states.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/bpf/states.c b/kernel/bpf/states.c index c62ea992967b..953700822fa7 100644 --- a/kernel/bpf/states.c +++ b/kernel/bpf/states.c @@ -1171,7 +1171,7 @@ static bool states_maybe_looping(struct bpf_verifier_state *old, fcur = cur->frame[fr]; for (i = 0; i < MAX_BPF_REG; i++) if (memcmp(&fold->regs[i], &fcur->regs[i], - offsetof(struct bpf_reg_state, precise))) + offsetofend(struct bpf_reg_state, step))) return false; return true; } |
