On Thu, Sep 11, 2025 at 11:19 AM Eduard Zingerman <eddyz87@xxxxxxxxx> wrote: > > On Thu, 2025-09-11 at 14:58 +0000, Puranjay Mohan wrote: > > Add selftests for testing the reporting of arena page faults through BPF > > streams. Two new bpf programs are added that read and write to an > > unmapped arena address and the fault reporting is verified in the > > userspace through streams. > > > > The added bpf programs need to access the user_vm_start in struct > > bpf_arena, this is done by casting &arena to struct bpf_arena *, but > > barrier_var() is used on this ptr before accessing ptr->user_vm_start; > > to stop GCC from issuing an out-of-bound access due to the cast from > > smaller map struct to larger "struct bpf_arena" > > > > Signed-off-by: Puranjay Mohan <puranjay@xxxxxxxxxx> > > --- > > Acked-by: Eduard Zingerman <eddyz87@xxxxxxxxx> > > > [...] > > > +SEC("syscall") > > +__arch_x86_64 > > +__arch_arm64 > > +__success __retval(0) > > +__stderr("ERROR: Arena WRITE access at unmapped address 0x{{.*}}") > > +__stderr("CPU: {{[0-9]+}} UID: 0 PID: {{[0-9]+}} Comm: {{.*}}") > > +__stderr("Call trace:\n" > > +"{{([a-zA-Z_][a-zA-Z0-9_]*\\+0x[0-9a-fA-F]+/0x[0-9a-fA-F]+\n" > > +"|[ \t]+[^\n]+\n)*}}") > > Nit: here and in other tests, the regex is a bit hard to read. > How wrong would it be to write it down as follows: > __stderr("Call trace:") > __stderr("bpf_stream_stage_dump_stack+0x{{.*}}/0x{{.*}}") > ? > (or at-least add a comment). Applied as-is. Please send a follow up for this one.