Merge branch 'Refactor verifier prune and jump point handling'
authorAlexei Starovoitov <ast@kernel.org>
Wed, 7 Dec 2022 03:14:39 +0000 (19:14 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 7 Dec 2022 03:14:39 +0000 (19:14 -0800)
commitf0c5a2d9f2342733e417ac5d5d19848dbd8ba7aa
tree689b83e87a95688dbb7412a773ce0cf1d07ab4d0
parentd8939cb0a03ce7e4e69f65bbd31b79fe42f7d5e6
parent618945fbed501b6e5865042068a51edfb2dda948
Merge branch 'Refactor verifier prune and jump point handling'

Andrii Nakryiko says:

====================

Disentangle prune and jump points in BPF verifier code. They are conceptually
independent but currently coupled together. This small patch set refactors
related code and make it possible to have some instruction marked as pruning
or jump point independently.

Besides just conceptual cleanliness, this allows to remove unnecessary jump
points (saving a tiny bit of performance and memory usage, potentially), and
even more importantly it allows for clean extension of special pruning points,
similarly to how it's done for BPF_FUNC_timer_set_callback. This will be used
by future patches implementing open-coded BPF iterators.

v1->v2:
  - clarified path #3 commit message and a comment in the code (John);
  - added back mark_jmp_point() to right after subprog call to record
    non-linear implicit jump from BPF_EXIT to right after CALL <subprog>.
====================

Signed-off-by: Alexei Starovoitov <ast@kernel.org>