On Tue, Feb 25, 2025 at 5:35 AM Jiri Olsa <olsajiri@xxxxxxxxx> wrote: > > > In later patches I see nop5 is replaced with a call to > > uprobe_trampoline_entry, but which part saves > > rdi and other regs? > > Compiler doesn't automatically spill/fill around USDT's nop/nop5. > > Selftest is doing: > > +__naked noinline void uprobe_test(void) > > so just lucky ? > > if you mean registers that would carry usdt arguments, ebpf programs > access those based on assembler operand string stored in usdt record: No. I'm talking about all normal registers that trap-style uprobe preserves, but this nop5->call will scratch. Instead of void uprobe_test(void) add some arguments to it, and read them before and after nop5 uprobe. They must remain the same.