[bpf-next v6 1/5] bpf: Move constants blinding from JIT to verifier
Xu Kuohai
xukuohai at huaweicloud.com
Fri Mar 6 19:10:22 PST 2026
On 3/7/2026 2:30 AM, Alexei Starovoitov wrote:
> On Fri, Mar 6, 2026 at 1:56 AM Xu Kuohai <xukuohai at huaweicloud.com> wrote:
>>
>> From: Xu Kuohai <xukuohai at huawei.com>
>>
>> During the JIT stage, constants blinding rewrites instructions but only
>> rewrites the private instruction copy of the JITed subprog, leaving the
>> global instructions and insn_aux_data unchanged. This causes a mismatch
>> between subprog instructions and the global state, making it difficult
>> to look up the global insn_aux_data in the JIT.
>>
>> To avoid this mismatch, and given that all arch-specific JITs already
>> support constants blinding, move it to the generic verifier code, and
>> switch to rewrite the global env->insnsi with the global states
>> adjusted, as other rewrites in the verifier do.
>>
>> This removes the constant blinding calls in each JIT, which are largely
>> duplicated code across architectures.
>>
>> And the prog clone functions and insn_array adjustment for the JIT
>> constant blinding are no longer needed, remove them too.
>>
>> Signed-off-by: Xu Kuohai <xukuohai at huawei.com>
>> ---
>> arch/arc/net/bpf_jit_core.c | 20 +--
>> arch/arm/net/bpf_jit_32.c | 41 +----
>> arch/arm64/net/bpf_jit_comp.c | 59 ++-----
>> arch/loongarch/net/bpf_jit.c | 50 ++----
>> arch/mips/net/bpf_jit_comp.c | 20 +--
>> arch/parisc/net/bpf_jit_core.c | 38 +----
>> arch/powerpc/net/bpf_jit_comp.c | 45 ++----
>> arch/riscv/net/bpf_jit_core.c | 45 ++----
>> arch/s390/net/bpf_jit_comp.c | 41 +----
>> arch/sparc/net/bpf_jit_comp_64.c | 41 +----
>> arch/x86/net/bpf_jit_comp.c | 40 +----
>> arch/x86/net/bpf_jit_comp32.c | 33 +---
>> include/linux/filter.h | 3 -
>> kernel/bpf/core.c | 263 -------------------------------
>> kernel/bpf/verifier.c | 215 +++++++++++++++++++++++--
>> 15 files changed, 288 insertions(+), 666 deletions(-)
>
> JIT changes are fine, but pls don't move main
> bpf_jit_blind* logic from core.c.
> It makes the diff unnecessary big.
>
ok, will leave it there
> pw-bot: cr
More information about the linux-arm-kernel
mailing list