Re: [PATCH v4 bpf 0/4] vmalloc: bpf: introduce VM_ALLOW_HUGE_VMAP

From: Song Liu
Date: Mon Apr 25 2022 - 02:49:10 EST

Hi Linus,

> On Apr 24, 2022, at 10:43 AM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> [ I see that you posted a new version of the series, but I wasn't cc'd
> on that one, so I'm replying to the old thread instead ]

Thanks for fixing up these, and sorry for the messing up CC list.

> On Sat, Apr 16, 2022 at 12:55 PM Song Liu <songliubraving@xxxxxx> wrote:
>> Patch 2/4 enables huge pages for large hash.
> I decided that for 5.18, we want to at least fix the performance
> regression on powerpc, so I've applied the 2/4 patch to enable huge
> pages for the large hashes.
> I also enabled them for kvmalloc(), since that seemed like the one
> ObviouslySafe(tm) case of vmalloc use (famous last words, maybe I'll
> be informed of somebody who still did odd protection games on the
> result, but that really sounds invalid with the whole SLUB component).
> I'm not touching the bpf parts. I think that's a 5.19 issue by now,
> and since it's new, there's no equivalent performance regression
> issue.

With 5.18-rc4, bpf programs on x86_64 are using 4kB bpf_prog_pack.
So multiple small BPF programs will share a 4kB page. We still need
to initialize each 4kB bpf_prog_pack with illegal instructions, with
something similar to [1]. I will revise it based on Peter’s
suggestion [2].