mbox series

[v2,bpf-next,0/2] bpf: keep track of verifier insn_processed

Message ID 20211011205415.234479-1-davemarchevsky@fb.com (mailing list archive)
Headers show
Series bpf: keep track of verifier insn_processed | expand

Message

Dave Marchevsky Oct. 11, 2021, 8:54 p.m. UTC
This is a followup to discussion around RFC patchset "bpf: keep track of
prog verification stats" [0]. The RFC elaborates on my usecase, but to
summarize: keeping track of verifier stats for programs as they - and
the kernels they run on - change over time can help developers of
individual programs and BPF kernel folks.

The RFC added a verif_stats to the uapi which contained most of the info
which verifier prints currently. Feedback here was to avoid polluting
uapi with stats that might be meaningless after major changes to the
verifier, but that insn_processed or conceptually similar number would
exist in the long term and was safe to expose.

So let's expose just insn_processed via bpf_prog_info and fdinfo for now
and explore good ways of getting more complicated stats in the future.

[0] https://lore.kernel.org/bpf/20210920151112.3770991-1-davemarchevsky@fb.com/

v1->v2:
  * Rename uapi field from insn_processed to verified_insns [Daniel]
  * use 31 bits of existing bitfield space in bpf_prog_info [Daniel]
  * change underlying type from 64-> 32 bits [Daniel]

Dave Marchevsky (2):
  bpf: add verified_insns to bpf_prog_info and fdinfo
  selftests/bpf: add verif_stats test

 include/linux/bpf.h                           |  1 +
 include/uapi/linux/bpf.h                      |  2 +-
 kernel/bpf/syscall.c                          |  8 +++--
 kernel/bpf/verifier.c                         |  1 +
 tools/include/uapi/linux/bpf.h                |  2 +-
 .../selftests/bpf/prog_tests/verif_stats.c    | 31 +++++++++++++++++++
 6 files changed, 41 insertions(+), 4 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/verif_stats.c

Comments

John Fastabend Oct. 18, 2021, 4:03 p.m. UTC | #1
Dave Marchevsky wrote:
> This is a followup to discussion around RFC patchset "bpf: keep track of
> prog verification stats" [0]. The RFC elaborates on my usecase, but to
> summarize: keeping track of verifier stats for programs as they - and
> the kernels they run on - change over time can help developers of
> individual programs and BPF kernel folks.
> 
> The RFC added a verif_stats to the uapi which contained most of the info
> which verifier prints currently. Feedback here was to avoid polluting
> uapi with stats that might be meaningless after major changes to the
> verifier, but that insn_processed or conceptually similar number would
> exist in the long term and was safe to expose.
> 
> So let's expose just insn_processed via bpf_prog_info and fdinfo for now
> and explore good ways of getting more complicated stats in the future.
> 
> [0] https://lore.kernel.org/bpf/20210920151112.3770991-1-davemarchevsky@fb.com/
> 
> v1->v2:
>   * Rename uapi field from insn_processed to verified_insns [Daniel]
>   * use 31 bits of existing bitfield space in bpf_prog_info [Daniel]
>   * change underlying type from 64-> 32 bits [Daniel]
> 
> Dave Marchevsky (2):
>   bpf: add verified_insns to bpf_prog_info and fdinfo
>   selftests/bpf: add verif_stats test
> 
>  include/linux/bpf.h                           |  1 +
>  include/uapi/linux/bpf.h                      |  2 +-
>  kernel/bpf/syscall.c                          |  8 +++--
>  kernel/bpf/verifier.c                         |  1 +
>  tools/include/uapi/linux/bpf.h                |  2 +-
>  .../selftests/bpf/prog_tests/verif_stats.c    | 31 +++++++++++++++++++
>  6 files changed, 41 insertions(+), 4 deletions(-)
>  create mode 100644 tools/testing/selftests/bpf/prog_tests/verif_stats.c
> 
> -- 
> 2.30.2
> 

For the series.

Acked-by: John Fastabend <john.fastabend@gmail.com>