• Song Liu's avatar
    bpf: Introduce bpf_prog_pack allocator · 57631054
    Song Liu authored
    Most BPF programs are small, but they consume a page each. For systems
    with busy traffic and many BPF programs, this could add significant
    pressure to instruction TLB. High iTLB pressure usually causes slow down
    for the whole system, which includes visible performance degradation for
    production workloads.
    
    Introduce bpf_prog_pack allocator to pack multiple BPF programs in a huge
    page. The memory is then allocated in 64 byte chunks.
    
    Memory allocated by bpf_prog_pack allocator is RO protected after initial
    allocation. To write to it, the user (jit engine) need to use text poke
    API.
    Signed-off-by: default avatarSong Liu <song@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20220204185742.271030-8-song@kernel.org
    57631054
core.c 66.1 KB