diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0011-bpf-x64-increase-number-of-passes.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.9.21/0011-bpf-x64-increase-number-of-passes.patch | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0011-bpf-x64-increase-number-of-passes.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0011-bpf-x64-increase-number-of-passes.patch deleted file mode 100644 index bf2556b8..00000000 --- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0011-bpf-x64-increase-number-of-passes.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 1909a1513f6d5b9170e40c4fee98bf2cd57b5b55 Mon Sep 17 00:00:00 2001 -From: Daniel Borkmann <daniel@iogearbox.net> -Date: Wed, 7 Mar 2018 22:10:01 +0100 -Subject: [PATCH 11/93] bpf, x64: increase number of passes - -commit 6007b080d2e2adb7af22bf29165f0594ea12b34c upstream. - -In Cilium some of the main programs we run today are hitting 9 passes -on x64's JIT compiler, and we've had cases already where we surpassed -the limit where the JIT then punts the program to the interpreter -instead, leading to insertion failures due to CONFIG_BPF_JIT_ALWAYS_ON -or insertion failures due to the prog array owner being JITed but the -program to insert not (both must have the same JITed/non-JITed property). - -One concrete case the program image shrunk from 12,767 bytes down to -10,288 bytes where the image converged after 16 steps. I've measured -that this took 340us in the JIT until it converges on my i7-6600U. Thus, -increase the original limit we had from day one where the JIT covered -cBPF only back then before we run into the case (as similar with the -complexity limit) where we trip over this and hit program rejections. -Also add a cond_resched() into the compilation loop, the JIT process -runs without any locks and may sleep anyway. - -Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> -Acked-by: Alexei Starovoitov <ast@kernel.org> -Reviewed-by: Eric Dumazet <edumazet@google.com> -Signed-off-by: Alexei Starovoitov <ast@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/x86/net/bpf_jit_comp.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c -index 1f7ed2e..cd97645 100644 ---- a/arch/x86/net/bpf_jit_comp.c -+++ b/arch/x86/net/bpf_jit_comp.c -@@ -1135,7 +1135,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) - * may converge on the last pass. In such case do one more - * pass to emit the final image - */ -- for (pass = 0; pass < 10 || image; pass++) { -+ for (pass = 0; pass < 20 || image; pass++) { - proglen = do_jit(prog, addrs, image, oldproglen, &ctx); - if (proglen <= 0) { - image = NULL; -@@ -1162,6 +1162,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) - } - } - oldproglen = proglen; -+ cond_resched(); - } - - if (bpf_jit_enable > 1) --- -2.7.4 - |