Hi Linus, On Thu, Apr 21, 2022 at 11:59 AM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Thu, Apr 21, 2022 at 11:24 AM Alexei Starovoitov > <alexei.starovoitov@xxxxxxxxx> wrote: > > > > Let's not complicate the logic by dragging jit_fill_hole > > further into generic allocation. > > I agree that just zeroing the page is probably perfectly fine in > practice on x86, but I'm also not really seeing the "complication" of > just doing things right. > > > The existing bpf_prog_pack code still does memset(0xcc) > > a random range of bytes before and after jit-ed bpf code. > > That is actually wishful thinking, and not based on reality. > > From what I can tell, the end of the jit'ed bpf code is actually the > exception table entries, so we have that data being marked executable. > > Honestly, what is wrong with this trivial patch? This version would fill the memory with illegal instruction when we allocate the bpf_prog_pack. The extra logic I had in the original patch was to erase the memory when a BPF program is freed. In this case, the memory will be returned to the bpf_prog_pack, and stays as RO+X. Actually, I am not quite sure whether we need this logic. If not, we only need the much simpler version. Thanks, Song