This patch series implements jump padding to x64 jit to cover some corner cases that used to consume more than 20 jit passes and caused failure. v3: - Copy the instructions of prologue separately or the size calculation of the first BPF instruction would include the prologue. - Replace WARN_ONCE() with pr_err() and EFAULT - Use MAX_PASSES in the for loop condition check - Remove the "padded" flag from x64_jit_data. For the extra pass of subprogs, padding is always enabled since it won't hurt the images that converge without padding. v2: - Simplify the sample code in the commit description and provide the jit code - Check the expected padding bytes with WARN_ONCE - Move the 'padded' flag to 'struct x64_jit_data' - Remove the EXPECTED_FAIL flag from bpf_fill_maxinsns11() in test_bpf - Add 2 verifier tests Gary Lin (3): bpf,x64: pad NOPs to make images converge more easily test_bpf: remove EXPECTED_FAIL flag from bpf_fill_maxinsns11 selftests/bpf: Add verifier test for x64 jit jump padding arch/x86/net/bpf_jit_comp.c | 86 +++++++++++++++------ lib/test_bpf.c | 7 +- tools/testing/selftests/bpf/test_verifier.c | 43 +++++++++++ tools/testing/selftests/bpf/verifier/jit.c | 16 ++++ 4 files changed, 122 insertions(+), 30 deletions(-) -- 2.29.2 Gary Lin (3): bpf,x64: pad NOPs to make images converge more easily test_bpf: remove EXPECTED_FAIL flag from bpf_fill_maxinsns11 selftests/bpf: Add verifier test for x64 jit jump padding arch/x86/net/bpf_jit_comp.c | 103 ++++++++++++++------ lib/test_bpf.c | 7 +- tools/testing/selftests/bpf/test_verifier.c | 43 ++++++++ tools/testing/selftests/bpf/verifier/jit.c | 16 +++ 4 files changed, 135 insertions(+), 34 deletions(-) -- 2.29.2