From: Alexei Starovoitov Date: Tue, 19 Jan 2021 20:42:13 +0000 (-0800) Subject: Merge branch 'bpf,x64: implement jump padding in jit' X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=86e6b4e993cf0c4dbe4c0ebfe052c89b9f9a2ade;p=linux.git Merge branch 'bpf,x64: implement jump padding in jit' Gary Lin says: ==================== 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. v4: - Add the detailed comments about the possible padding bytes - Add the second test case which triggers jmp_cond padding and imm32 nop jmp padding. - Add the new test case as another subprog 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 ==================== Signed-off-by: Alexei Starovoitov --- 86e6b4e993cf0c4dbe4c0ebfe052c89b9f9a2ade