]> git.baikalelectronics.ru Git - kernel.git/commit
test_bpf: add similarly conflicting jump test case only for classic
authorDaniel Borkmann <daniel@iogearbox.net>
Tue, 26 May 2015 20:35:43 +0000 (22:35 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 May 2015 18:05:59 +0000 (14:05 -0400)
commitfa2276648851cbf310bed93ba1fa7e85d51c01f2
tree679251f45a7a1ab02886e816ff418fdc4f227cb8
parent888c15c5d757c45406a24f66eabf9e583751a489
test_bpf: add similarly conflicting jump test case only for classic

While e59ee673614a ("test_bpf: add more eBPF jump torture cases")
added the int3 bug test case only for eBPF, which needs exactly 11
passes to converge, here's a version for classic BPF with 11 passes,
and one that would need 70 passes on x86_64 to actually converge for
being successfully JITed. Effectively, all jumps are being optimized
out resulting in a JIT image of just 89 bytes (from originally max
BPF insns), only returning K.

Might be useful as a receipe for folks wanting to craft a test case
when backporting the fix in commit 22827e9f7685 ("x86: bpf_jit: fix
compilation of large bpf programs") while not having eBPF. The 2nd
one is delegated to the interpreter as the last pass still results
in shrinking, in other words, this one won't be JITed on x86_64.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
lib/test_bpf.c