On Sat, Mar 27, 2021 at 11:19 PM Alexei Starovoitov <alexei.starovoi...@gmail.com> wrote: > > On Sat, Mar 27, 2021 at 1:19 AM Jianlin Lv <jianlin...@arm.com> wrote: > > > > > On Fri, Mar 26, 2021 at 5:40 AM Jianlin Lv <jianlin...@arm.com> wrote: > > > > > > > > When CONFIG_BPF_JIT_ALWAYS_ON is enabled, the value of > > > bpf_jit_enable > > > > in /proc/sys is limited to SYSCTL_ONE. This is not convenient for > > > > debugging. > > > > This patch modifies the value of extra2 (max) to 2 that support > > > > developers to emit traces on kernel log. > > > > > > > > Signed-off-by: Jianlin Lv <jianlin...@arm.com> > > > > --- > > > > net/core/sysctl_net_core.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c > > > > index d84c8a1b280e..aa16883ac445 100644 > > > > --- a/net/core/sysctl_net_core.c > > > > +++ b/net/core/sysctl_net_core.c > > > > @@ -386,7 +386,7 @@ static struct ctl_table net_core_table[] = { > > > > .proc_handler = proc_dointvec_minmax_bpf_enable, > > > > # ifdef CONFIG_BPF_JIT_ALWAYS_ON > > > > .extra1 = SYSCTL_ONE, > > > > - .extra2 = SYSCTL_ONE, > > > > + .extra2 = &two, > > > > > > "bpftool prog dump jited" is much better way to examine JITed dumps. > > > I'd rather remove bpf_jit_enable=2 altogether. > > > > In my case, I introduced a bug when I made some adjustments to the arm64 > > jit macro A64_MOV(), which caused the SP register to be replaced by the > > XZR register when building prologue, and the wrong value was stored in fp, > > which triggered a crash. > > > > This bug is likely to cause the instruction to access the BPF stack in > > jited prog to trigger a crash. > > I tried to use bpftool to debug, but bpftool crashed when I executed the > > "bpftool prog show" command. > > The syslog shown that bpftool is loading and running some bpf prog. > > because of the bug in the JIT compiler, the bpftool execution failed. > > Right 'bpftool prog show' command is loading a bpf iterator prog, > but you didn't need to use it to dump JITed code. > "bpftool prog dump jited name my_prog" > would have dumped it even when JIT is all buggy. > > > bpf_jit_disasm saved me, it helped me dump the jited image: > > > > echo 2> /proc/sys/net/core/bpf_jit_enable > > modprobe test_bpf test_name="SPILL_FILL" > > ./bpf_jit_disasm -o > > > > So keeping bpf_jit_enable=2 is still very meaningful for developers who > > try to modify the JIT compiler. > > sure and such JIT developers can compile the kernel > without BPF_JIT_ALWAYS_ON just like you did. > They can also insert printk, etc. > bpf_jit_enable=2 was done long ago when there was no other way > to see JITed code. Now we have proper apis. > That =2 mode can and should be removed.
Thanks for your reply, I will prepare another patch to remove =2mode. > > > IMPORTANT NOTICE: The contents of this email and any attachments are > > confidential and may also be privileged. If you are not the intended > > recipient, please notify the sender immediately and do not disclose the > > contents to any other person, use it for any purpose, or store or copy the > > information in any medium. Thank you. > > please fix your email server/client/whatever. No patches will ever be > accepted with > such disclaimer. Apologize for this. Jianlin