test_bpf: add more eBPF jump torture cases
authorDaniel Borkmann <daniel@iogearbox.net>
Fri, 22 May 2015 23:10:07 +0000 (01:10 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 May 2015 04:15:18 +0000 (00:15 -0400)
commit3b52960266a36f7f2b577eb35cd97d2f64a5df26
tree3a53c1cd74f803649bc431f7f826b4ee993d17e5
parentcff497c8701ba5133e3407fd41430dc6159a3541
test_bpf: add more eBPF jump torture cases

Add two more eBPF test cases for JITs, i.e. the second one revealed a
bug in the x86_64 JIT compiler, where only an int3 filled image from
the allocator was emitted and later wrongly set by the compiler as the
bpf_func program code since optimization pass boundary was surpassed
w/o actually emitting opcodes.

Interpreter:

  [   45.782892] test_bpf: #242 BPF_MAXINSNS: Very long jump backwards jited:0 11 PASS
  [   45.783062] test_bpf: #243 BPF_MAXINSNS: Edge hopping nuthouse jited:0 14705 PASS

After x86_64 JIT (fixed):

  [   80.495638] test_bpf: #242 BPF_MAXINSNS: Very long jump backwards jited:1 6 PASS
  [   80.495957] test_bpf: #243 BPF_MAXINSNS: Edge hopping nuthouse jited:1 17157 PASS

Reference: http://thread.gmane.org/gmane.linux.network/364729
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