• Xu Kuohai's avatar
    bpf, arm64: Get rid of fpb · bd737fcb
    Xu Kuohai authored
    bpf prog accesses stack using BPF_FP as the base address and a negative
    immediate number as offset. But arm64 ldr/str instructions only support
    non-negative immediate number as offset. To simplify the jited result,
    commit 5b3d19b9 ("bpf, arm64: Adjust the offset of str/ldr(immediate)
    to positive number") introduced FPB to represent the lowest stack address
    that the bpf prog being jited may access, and with this address as the
    baseline, it converts BPF_FP plus negative immediate offset number to FPB
    plus non-negative immediate offset.
    
    Considering that for a given bpf prog, the jited stack space is fixed
    with A64_SP as the lowest address and BPF_FP as the highest address.
    Thus we can get rid of FPB and converts BPF_FP plus negative immediate
    offset to A64_SP plus non-negative immediate offset.
    Signed-off-by: default avatarXu Kuohai <xukuohai@huawei.com>
    Link: https://lore.kernel.org/r/20240826071624.350108-2-xukuohai@huaweicloud.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    bd737fcb
bpf_jit_comp.c 68.2 KB