From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: Marat Khalili <qm2k21@gmail.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
Marat Khalili <marat.khalili@huawei.com>,
Stephen Hemminger <stephen@networkplumber.org>
Subject: RE: [PATCH v4 0/7] validate-bpf: add standalone validation debug tool
Date: Thu, 17 Sep 2026 16:16:18 +0000 [thread overview]
Message-ID: <4f90b8f5788e40fe94ddda11e94a474f@huawei.com> (raw)
In-Reply-To: <20260917143539.46951-1-qm2k21@gmail.com>
> This patchset introduces a new standalone tool for pre-validating eBPF
> programs and debugging validation problems. Its should allow developers
> to trace validator state changes per instruction and understand verifier
> decisions, simplifying the debugging of rejected programs before loading
> them into a real application context.
>
> v4:
> * addressed reviewer feedback from Konstantin Ananyev:
> * changed variable and array names to lowercase to follow conventions;
> * replaced strtoull()/strtoumax() with strtoul() and removed redundant
> SIZE_MAX checks;
> * changed return types of point_infos_destroy_* functions to void;
> * replaced %jd and (intmax_t) cast with PRId32 when printing frame
> offsets;
> * refactored the inverted loop in print_frame() for clarity;
> * replaced return -ENOMEM with RTE_VERIFY() for allocations in debug.c
> print functions;
> * simplified token matching logic in parse_decl.c by using strncmp().
>
> v3:
> * addressed another FreeBSD issue (spurious uninitialized warning);
> * addressed more AI comments:
> * fail if library fails to set step catchpoint on start command;
> * fail nicer if external variables are too big;
> * fail nicer if EAL initialization or cleanup fails;
> * explain why 9 steps are expeced in the test;
> * explain that non-zero buf_size marks mbuf;
> * avoid symbols starting with `RTE_` in the app;
>
> v2:
> * for FreeBSD compatibility switched from Linux to DPDK network structs;
> * addressed small AI comments:
> * clarified patch 1 commit message;
> * renamed `rte_validate_bpf_logtype` to `validate_bpf_logtype`;
> * corrected comment to an internal-use-only function to reflect that
> next-after-last value of the program counter is no longer allowed;
>
> Marat Khalili (7):
> bpf/validate: fix finished status on restart
> bpf/validate: refactor internal step function
> bpf/validate: formalize call back requirements
> bpf/validate: add jump notification events
> bpf/validate: add get current event API
> app/test: add test for bpf validate debug events
> app/validate-bpf: add BPF validation application
>
> MAINTAINERS | 2 +
> app/meson.build | 1 +
> app/test/test_bpf_validate.c | 344 +++++++-
> app/validate-bpf/alloc_list.c | 53 ++
> app/validate-bpf/args.c | 262 ++++++
> app/validate-bpf/debug.c | 1087 ++++++++++++++++++++++++
> app/validate-bpf/debug_command.c | 383 +++++++++
> app/validate-bpf/debug_command.h | 65 ++
> app/validate-bpf/eal_init_args.c | 57 ++
> app/validate-bpf/internal.h | 151 ++++
> app/validate-bpf/main.c | 90 ++
> app/validate-bpf/meson.build | 13 +
> app/validate-bpf/parse_decl.c | 616 ++++++++++++++
> doc/guides/rel_notes/release_26_11.rst | 5 +
> doc/guides/tools/index.rst | 1 +
> doc/guides/tools/validate_bpf.rst | 97 +++
> lib/bpf/bpf_validate.c | 49 +-
> lib/bpf/bpf_validate_debug.c | 92 +-
> lib/bpf/bpf_validate_debug.h | 12 +-
> lib/bpf/rte_bpf_validate_debug.h | 42 +-
> 20 files changed, 3356 insertions(+), 66 deletions(-)
> create mode 100644 app/validate-bpf/alloc_list.c
> create mode 100644 app/validate-bpf/args.c
> create mode 100644 app/validate-bpf/debug.c
> create mode 100644 app/validate-bpf/debug_command.c
> create mode 100644 app/validate-bpf/debug_command.h
> create mode 100644 app/validate-bpf/eal_init_args.c
> create mode 100644 app/validate-bpf/internal.h
> create mode 100644 app/validate-bpf/main.c
> create mode 100644 app/validate-bpf/meson.build
> create mode 100644 app/validate-bpf/parse_decl.c
> create mode 100644 doc/guides/tools/validate_bpf.rst
>
> --
Series-Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
> 2.43.0
prev parent reply other threads:[~2026-09-17 16:16 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 10:39 [PATCH 0/7] validate-bpf: add standalone validation debug tool Marat Khalili
2026-09-11 10:39 ` [PATCH 1/7] bpf/validate: fix finished status on restart Marat Khalili
2026-09-11 10:40 ` [PATCH 2/7] bpf/validate: refactor internal step function Marat Khalili
2026-09-11 10:40 ` [PATCH 3/7] bpf/validate: formalize call back requirements Marat Khalili
2026-09-11 10:40 ` [PATCH 4/7] bpf/validate: add jump notification events Marat Khalili
2026-09-11 10:40 ` [PATCH 5/7] bpf/validate: add get current event API Marat Khalili
2026-09-11 10:40 ` [PATCH 6/7] app/test: add test for bpf validate debug events Marat Khalili
2026-09-11 10:40 ` [PATCH 7/7] app/validate-bpf: add BPF validation application Marat Khalili
2026-09-14 14:54 ` [PATCH v2 0/7] validate-bpf: add standalone validation debug tool Marat Khalili
2026-09-14 14:54 ` [PATCH v2 1/7] bpf/validate: fix finished status on restart Marat Khalili
2026-09-14 14:54 ` [PATCH v2 2/7] bpf/validate: refactor internal step function Marat Khalili
2026-09-14 14:54 ` [PATCH v2 3/7] bpf/validate: formalize call back requirements Marat Khalili
2026-09-14 14:54 ` [PATCH v2 4/7] bpf/validate: add jump notification events Marat Khalili
2026-09-14 14:54 ` [PATCH v2 5/7] bpf/validate: add get current event API Marat Khalili
2026-09-14 14:54 ` [PATCH v2 6/7] app/test: add test for bpf validate debug events Marat Khalili
2026-09-14 14:54 ` [PATCH v2 7/7] app/validate-bpf: add BPF validation application Marat Khalili
2026-09-14 18:41 ` Stephen Hemminger
2026-09-15 13:13 ` Stephen Hemminger
2026-09-14 18:42 ` [PATCH v2 0/7] validate-bpf: add standalone validation debug tool Stephen Hemminger
2026-09-15 19:27 ` Marat Khalili
2026-09-15 19:26 ` [PATCH v3 " Marat Khalili
2026-09-15 19:26 ` [PATCH v3 1/7] bpf/validate: fix finished status on restart Marat Khalili
2026-09-15 19:26 ` [PATCH v3 2/7] bpf/validate: refactor internal step function Marat Khalili
2026-09-15 19:26 ` [PATCH v3 3/7] bpf/validate: formalize call back requirements Marat Khalili
2026-09-15 19:26 ` [PATCH v3 4/7] bpf/validate: add jump notification events Marat Khalili
2026-09-15 19:26 ` [PATCH v3 5/7] bpf/validate: add get current event API Marat Khalili
2026-09-15 19:26 ` [PATCH v3 6/7] app/test: add test for bpf validate debug events Marat Khalili
2026-09-15 19:26 ` [PATCH v3 7/7] app/validate-bpf: add BPF validation application Marat Khalili
2026-09-16 16:36 ` Konstantin Ananyev
2026-09-17 14:35 ` [PATCH v4 0/7] validate-bpf: add standalone validation debug tool Marat Khalili
2026-09-17 14:35 ` [PATCH v4 1/7] bpf/validate: fix finished status on restart Marat Khalili
2026-09-17 14:35 ` [PATCH v4 2/7] bpf/validate: refactor internal step function Marat Khalili
2026-09-17 14:35 ` [PATCH v4 3/7] bpf/validate: formalize call back requirements Marat Khalili
2026-09-17 14:35 ` [PATCH v4 4/7] bpf/validate: add jump notification events Marat Khalili
2026-09-17 14:35 ` [PATCH v4 5/7] bpf/validate: add get current event API Marat Khalili
2026-09-17 14:35 ` [PATCH v4 6/7] app/test: add test for bpf validate debug events Marat Khalili
2026-09-17 14:35 ` [PATCH v4 7/7] app/validate-bpf: add BPF validation application Marat Khalili
2026-09-17 16:16 ` Konstantin Ananyev [this message]
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=4f90b8f5788e40fe94ddda11e94a474f@huawei.com \
--to=konstantin.ananyev@huawei.com \
--cc=dev@dpdk.org \
--cc=marat.khalili@huawei.com \
--cc=qm2k21@gmail.com \
--cc=stephen@networkplumber.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox