From: Eduard Zingerman <eddyz87@gmail.com>
To: bpf@vger.kernel.org, ast@kernel.org
Cc: andrii@kernel.org, daniel@iogearbox.net, martin.lau@linux.dev,
kernel-team@fb.com, yonghong.song@linux.dev, kuniyu@amazon.com,
Eduard Zingerman <eddyz87@gmail.com>
Subject: [PATCH bpf-next v2 0/3] check bpf_func_state->callback_depth when pruning states
Date: Fri, 16 Feb 2024 17:03:31 +0200 [thread overview]
Message-ID: <20240216150334.31937-1-eddyz87@gmail.com> (raw)
This patch-set fixes bug in states pruning logic hit in mailing list
discussion [0]. The details of the fix are in patch #2.
A change to the test case test_tcp_custom_syncookie.c is necessary,
otherwise updated verifier won't be able to process it due to
instruction complexity limit. This change is done in patch #1.
The main idea for the fix belongs to Yonghong Song,
mine contribution is merely in review and test cases.
There are some changes in verification performance:
File Program Insns (DIFF) States (A) States (B) States (DIFF)
------------------------- -------- -------------- ---------- ---------- -------------
pyperf600_bpf_loop.bpf.o on_event +53 (+1.09%) 323 330 +7 (+2.17%)
strobemeta_bpf_loop.bpf.o on_event +594 (+27.85%) 163 213 +50 (+30.67%)
(when tested using BPF selftests and Cilium object files)
Changelog:
v1 [1] -> v2:
- patch #2 commit message updated to better reflect verifier behavior
with regards to checkpoints tree (suggested by Yonghong);
- veristat results added (suggested by Andrii).
[0] https://lore.kernel.org/bpf/9b251840-7cb8-4d17-bd23-1fc8071d8eef@linux.dev/
[1] https://lore.kernel.org/bpf/20240212143832.28838-1-eddyz87@gmail.com/
Eduard Zingerman (3):
selftests/bpf: update tcp_custom_syncookie to use scalar packet offset
bpf: check bpf_func_state->callback_depth when pruning states
selftests/bpf: test case for callback_depth states pruning logic
kernel/bpf/verifier.c | 3 +
.../bpf/progs/test_tcp_custom_syncookie.c | 83 ++++++++++++-------
.../bpf/progs/verifier_iterating_callbacks.c | 70 ++++++++++++++++
3 files changed, 126 insertions(+), 30 deletions(-)
--
2.43.0
next reply other threads:[~2024-02-16 15:03 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-16 15:03 Eduard Zingerman [this message]
2024-02-16 15:03 ` [PATCH bpf-next v2 1/3] selftests/bpf: update tcp_custom_syncookie to use scalar packet offset Eduard Zingerman
2024-02-16 15:03 ` [PATCH bpf-next v2 2/3] bpf: check bpf_func_state->callback_depth when pruning states Eduard Zingerman
2024-02-16 18:16 ` Andrii Nakryiko
2024-02-17 18:19 ` Eduard Zingerman
2024-02-19 12:48 ` Eduard Zingerman
2024-02-20 0:30 ` Yonghong Song
2024-02-16 15:03 ` [PATCH bpf-next v2 3/3] selftests/bpf: test case for callback_depth states pruning logic Eduard Zingerman
2024-02-20 0:32 ` Yonghong Song
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240216150334.31937-1-eddyz87@gmail.com \
--to=eddyz87@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=kernel-team@fb.com \
--cc=kuniyu@amazon.com \
--cc=martin.lau@linux.dev \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).