• Song Liu's avatar
    bpf: Select proper size for bpf_prog_pack · ef078600
    Song Liu authored
    Using HPAGE_PMD_SIZE as the size for bpf_prog_pack is not ideal in some
    cases. Specifically, for NUMA systems, __vmalloc_node_range requires
    PMD_SIZE * num_online_nodes() to allocate huge pages. Also, if the system
    does not support huge pages (i.e., with cmdline option nohugevmalloc), it
    is better to use PAGE_SIZE packs.
    
    Add logic to select proper size for bpf_prog_pack. This solution is not
    ideal, as it makes assumption about the behavior of module_alloc and
    __vmalloc_node_range. However, it appears to be the easiest solution as
    it doesn't require changes in module_alloc and vmalloc code.
    
    Fixes: 57631054 ("bpf: Introduce bpf_prog_pack allocator")
    Signed-off-by: default avatarSong Liu <song@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20220311201135.3573610-1-song@kernel.org
    ef078600
core.c 69.9 KB