> 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 <[email protected]>

> 2.43.0

Reply via email to