next/master bisection: baseline.login on qemu_arm64-virt-gicv3-uefi
Puranjay Mohan
puranjay12 at gmail.com
Fri Mar 8 04:12:22 PST 2024
Hi Song,
>
> bpf_prog_pack gives benefits without using PMD pages. For arm64
> with 64kB page, even bpf_prog_pack of 64kB can fit multiple bpf
> programs in it. OTOH, 512MB is really big.
>
> How about we do something like the following?
>
> Thanks,
> Song
>
> diff --git i/kernel/bpf/core.c w/kernel/bpf/core.c
> index 9ee4536d0a09..1fe05c280e31 100644
> --- i/kernel/bpf/core.c
> +++ w/kernel/bpf/core.c
> @@ -888,7 +888,15 @@ static LIST_HEAD(pack_list);
> * CONFIG_MMU=n. Use PAGE_SIZE in these cases.
> */
> #ifdef PMD_SIZE
> -#define BPF_PROG_PACK_SIZE (PMD_SIZE * num_possible_nodes())
> + /* PMD_SIZE is really big for some archs. It doesn't make sense to
> + * reserve too much memory in one allocation. Cap BPF_PROG_PACK_SIZE to
> + * 2MiB * num_possible_nodes().
> + */
> + #if PMD_SIZE <= (1 << 21)
> + #define BPF_PROG_PACK_SIZE (PMD_SIZE * num_possible_nodes())
> + #else
> + #define BPF_PROG_PACK_SIZE ((1 << 21) * num_possible_nodes())
> + #endif
> #else
> #define BPF_PROG_PACK_SIZE PAGE_SIZE
> #endif
I have sent a patch with the above:
https://lore.kernel.org/all/20240308120712.88122-1-puranjay12@gmail.com/
Thanks for helping with this.
I have tested that this patch fixes this issue.
Thanks,
Puranjay
More information about the linux-arm-kernel
mailing list