Message ID | 20220120191306.1801459-1-song@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | bpf_prog_pack allocator | expand |
Hi Peter, > On Jan 20, 2022, at 11:12 AM, Song Liu <song@kernel.org> wrote: > > Changes v4 => v5: > 1. Do not use atomic64 for bpf_jit_current. (Alexei) > > Changes v3 => v4: > 1. Rename text_poke_jit() => text_poke_copy(). (Peter) > 2. Change comment style. (Peter) > > Changes v2 => v3: > 1. Fix tailcall. > > Changes v1 => v2: > 1. Use text_poke instead of writing through linear mapping. (Peter) > 2. Avoid making changes to non-x86_64 code. > > Most BPF programs are small, but they consume a page each. For systems > with busy traffic and many BPF programs, this could also add significant > pressure to instruction TLB. > > This set tries to solve this problem with customized allocator that pack > multiple programs into a huge page. > > Patches 1-5 prepare the work. Patch 6 contains key logic of the allocator. > Patch 7 uses this allocator in x86_64 jit compiler. > > Song Liu (7): > x86/Kconfig: select HAVE_ARCH_HUGE_VMALLOC with HAVE_ARCH_HUGE_VMAP > bpf: use bytes instead of pages for bpf_jit_[charge|uncharge]_modmem > bpf: use size instead of pages in bpf_binary_header > bpf: add a pointer of bpf_binary_header to bpf_prog > x86/alternative: introduce text_poke_copy > bpf: introduce bpf_prog_pack allocator > bpf, x86_64: use bpf_prog_pack allocator Could you please share your feedback for and/or ack this set? Thanks, Song