found this while trying to work around probe size requirement -- so this will be important for complex bpf programs until/unless we bump the userspace interpreter's stack size I want two end probes to run in a specific order. Normally begin/end probe order is unspecified but in fact you can constrain it with sequence numbers. global flag1 = 0 global flag2 = 0 probe begin(1) { printf("BEGIN\n") flag1 = 2 } probe begin(2) { flag1 = 1 exit() } probe end(1) { flag2 = 2 } probe end(2) { flag2 = 1 } probe end(3) { printf("got flag1==%d flag2==%d\n", flag1, flag2) if (flag1 == 1 && flag2 == 1) printf("END PASS\n") else printf("END FAIL\n") } but it doesn't work on bpf. $ sudo ~/stap-install/bin/stap probe_order.stp BEGIN got flag1==1 flag2==1 END PASS $ sudo ~/stap-install/bin/stap --bpf probe_order.stp BEGIN got flag1==1 flag2==0 END FAIL Mirrors pr3624 for the kernel backend.
Fixed in commit a8c7c8f11.