[PATCH net-next 0/2] bpf: add search pruning optimization and tests

From: Alexei Starovoitov
Date: Mon Sep 29 2014 - 21:50:18 EST

Hi All,

patch #1 commit log explains why eBPF verifier has to examine some
instructions multiple times and describes the search pruning optimization
that improves verification speed for branchy programs and allows more
complex programs to be verified successfully.
This patch completes the core verifier logic.

patch #2 adds more verifier tests related to branches and search pruning

I'm still working on Andy's 'bitmask for stack slots' suggestion. It will be
done on top of this patch.

The current verifier algorithm is brute force depth first search with
state pruning. If anyone can come up with another algorithm that demonstrates
better results, we'll replace the algorithm without affecting user space.

Note verifier doesn't guarantee that all possible valid programs are accepted.
Overly complex programs may still be rejected.
Verifier improvements/optimizations will guarantee that if a program
was passing verification in the past, it will still be passing.

Alexei Starovoitov (2):
bpf: add search pruning optimization to verifier
bpf: add tests to verifier testsuite

kernel/bpf/verifier.c | 146 +++++++++++++++++++++++++++++++++++++++++++
samples/bpf/test_verifier.c | 130 ++++++++++++++++++++++++++++++++++++++
2 files changed, 276 insertions(+)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/