From: John Fastabend <john.fastabend@gmail.com>
To: Andrii Nakryiko <andrii@kernel.org>,
bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net,
martin.lau@kernel.org
Cc: andrii@kernel.org, kernel-team@meta.com
Subject: RE: [PATCH v2 bpf-next 0/7] BPF register bounds logic and testing improvements
Date: Fri, 20 Oct 2023 21:13:58 -0700 [thread overview]
Message-ID: <65335006882f9_6c4082082a@john.notmuch> (raw)
In-Reply-To: <20231019042405.2971130-1-andrii@kernel.org>
Andrii Nakryiko wrote:
> This patch set adds a big set of manual and auto-generated test cases
> validating BPF verifier's register bounds tracking and deduction logic. See
> details in the last patch.
>
> To make this approach work, BPF verifier's logic needed a bunch of
> improvements to handle some cases that previously were not covered. This had
> no implications as to correctness of verifier logic, but it was incomplete
> enough to cause significant disagreements with alternative implementation of
> register bounds logic that tests in this patch set implement. So we need BPF
> verifier logic improvements to make all the tests pass.
>
> This is a first part of work with the end goal intended to extend register
> bounds logic to cover range vs range comparisons, which will be submitted
> later assuming changes in this patch set land.
>
> See individual patches for details.
Nice, I'm about half way through this I'll continue on Monday. The two rounds
of convergence was interesting I didn't expect that. Looks good to me though
so far.
Thanks for doing this I've wanted this cleaned up for awhile!
>
> v1->v2:
> - fix compilation when building selftests with llvm-16 toolchain (CI).
>
> Andrii Nakryiko (7):
> bpf: improve JEQ/JNE branch taken logic
> bpf: derive smin/smax from umin/max bounds
> bpf: enhance subregister bounds deduction logic
> bpf: improve deduction of 64-bit bounds from 32-bit bounds
> bpf: try harder to deduce register bounds from different numeric
> domains
> bpf: drop knowledge-losing __reg_combine_{32,64}_into_{64,32} logic
> selftests/bpf: BPF register range bounds tester
>
> kernel/bpf/verifier.c | 175 +-
> .../selftests/bpf/prog_tests/reg_bounds.c | 1668 +++++++++++++++++
> 2 files changed, 1791 insertions(+), 52 deletions(-)
> create mode 100644 tools/testing/selftests/bpf/prog_tests/reg_bounds.c
>
> --
> 2.34.1
>
>
next prev parent reply other threads:[~2023-10-21 4:14 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-19 4:23 [PATCH v2 bpf-next 0/7] BPF register bounds logic and testing improvements Andrii Nakryiko
2023-10-19 4:23 ` [PATCH v2 bpf-next 1/7] bpf: improve JEQ/JNE branch taken logic Andrii Nakryiko
2023-10-19 4:24 ` [PATCH v2 bpf-next 2/7] bpf: derive smin/smax from umin/max bounds Andrii Nakryiko
2023-10-19 4:24 ` [PATCH v2 bpf-next 3/7] bpf: enhance subregister bounds deduction logic Andrii Nakryiko
2023-10-19 4:24 ` [PATCH v2 bpf-next 4/7] bpf: improve deduction of 64-bit bounds from 32-bit bounds Andrii Nakryiko
2023-10-19 4:24 ` [PATCH v2 bpf-next 5/7] bpf: try harder to deduce register bounds from different numeric domains Andrii Nakryiko
2023-10-19 4:24 ` [PATCH v2 bpf-next 6/7] bpf: drop knowledge-losing __reg_combine_{32,64}_into_{64,32} logic Andrii Nakryiko
2023-10-19 4:24 ` [PATCH v2 bpf-next 7/7] selftests/bpf: BPF register range bounds tester Andrii Nakryiko
2023-10-19 7:08 ` kernel test robot
2023-10-19 18:27 ` Andrii Nakryiko
2023-10-19 7:30 ` Shung-Hsi Yu
2023-10-19 7:52 ` Shung-Hsi Yu
2023-10-19 18:34 ` Andrii Nakryiko
2023-10-20 17:37 ` Srinivas Narayana Ganapathy
2023-10-22 4:42 ` Andrii Nakryiko
2023-10-23 14:05 ` Shung-Hsi Yu
2023-10-23 15:52 ` Paul Chaignon
2023-10-23 22:50 ` Andrii Nakryiko
2023-10-24 5:51 ` Andrii Nakryiko
2023-10-24 21:26 ` Paul Chaignon
2023-10-26 22:47 ` Andrii Nakryiko
2023-10-19 18:31 ` Andrii Nakryiko
2023-10-20 12:27 ` Shung-Hsi Yu
2023-10-21 4:13 ` John Fastabend [this message]
2023-10-22 4:32 ` [PATCH v2 bpf-next 0/7] BPF register bounds logic and testing improvements Andrii Nakryiko
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=65335006882f9_6c4082082a@john.notmuch \
--to=john.fastabend@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=kernel-team@meta.com \
--cc=martin.lau@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.