The first patch is a simplification of register liveness tracking by using
a separate parentage chain for each register and stack slot, thus avoiding
the need for logic to handle callee-saved registers when applying read
marks. In the future this idea may be extended to form use-def chains.
The second patch adds information about misc/zero data on the stack to the
state dumps emitted to the log at various points; this information was
found essential in debugging the first patch, and may be useful elsewhere.
Edward Cree (2):
bpf/verifier: per-register parent pointers
bpf/verifier: display non-spill stack slot types in
print_verifier_state
include/linux/bpf_verifier.h | 8 +-
kernel/bpf/verifier.c | 216 ++++++++++++++-----------------------------
2 files changed, 72 insertions(+), 152 deletions(-)