This patch intends to show some benchmark results comparing a bpf program with vs. without private stack. The patch is not intended to land since it hacks existing kernel interface in order to do proper comparison. The bpf program is similar to 7df4e597ea2c ("selftests/bpf: add batched, mostly in-kernel BPF triggering benchmarks") where a raw_tp program is triggered with bpf_prog_test_run_opts() and the raw_tp program has a loop of helper bpf_get_numa_node_id() which will enable a fentry prog to run. The fentry prog calls three do-nothing functions to maximumly expose the cost of private stack. The following is the jited code for bpf prog in progs/private_stack.c without private stack. The number of batch iterations is 4096. subprog: 0: f3 0f 1e fa endbr64 4: 0f 1f 44 00 00 nop DWORD PTR [rax+rax*1+0x0] 9: 66 90 xchg ax,ax b: 55 push rbp c: 48 89 e5 mov rbp,rsp f: f3 0f 1e fa endbr64 13: 31 c0 xor eax,eax 15: c9 leave 16: c3 ret main prog: 0: f3 0f 1e fa endbr64 4: 0f 1f 44 00 00 nop DWORD PTR [rax+rax*1+0x0] 9: 66 90 xchg ax,ax b: 55 push rbp c: 48 89 e5 mov rbp,rsp f: f3 0f 1e fa endbr64 13: 48 bf 00 e0 57 00 00 movabs rdi,0xffffc9000057e000 1a: c9 ff ff 1d: 48 8b 77 00 mov rsi,QWORD PTR [rdi+0x0] 21: 48 83 c6 01 add rsi,0x1 25: 48 89 77 00 mov QWORD PTR [rdi+0x0],rsi 29: e8 6e 00 00 00 call 0x9c 2e: e8 69 00 00 00 call 0x9c 33: e8 64 00 00 00 call 0x9c 38: 31 c0 xor eax,eax 3a: c9 leave 3b: c3 ret The following are the jited progs with private stack: subprog: 0: f3 0f 1e fa endbr64 4: 0f 1f 44 00 00 nop DWORD PTR [rax+rax*1+0x0] 9: 66 90 xchg ax,ax b: 55 push rbp c: 48 89 e5 mov rbp,rsp f: f3 0f 1e fa endbr64 13: 49 b9 70 a6 c1 08 7e movabs r9,0x607e08c1a670 1a: 60 00 00 1d: 65 4c 03 0c 25 00 1a add r9,QWORD PTR gs:0x21a00 24: 02 00 26: 31 c0 xor eax,eax 28: c9 leave 29: c3 ret main prog: 0: f3 0f 1e fa endbr64 4: 0f 1f 44 00 00 nop DWORD PTR [rax+rax*1+0x0] 9: 66 90 xchg ax,ax b: 55 push rbp c: 48 89 e5 mov rbp,rsp f: f3 0f 1e fa endbr64 13: 49 b9 88 a6 c1 08 7e movabs r9,0x607e08c1a688 1a: 60 00 00 1d: 65 4c 03 0c 25 00 1a add r9,QWORD PTR gs:0x21a00 24: 02 00 26: 48 bf 00 d0 5b 00 00 movabs rdi,0xffffc900005bd000 2d: c9 ff ff 30: 48 8b 77 00 mov rsi,QWORD PTR [rdi+0x0] 34: 48 83 c6 01 add rsi,0x1 38: 48 89 77 00 mov QWORD PTR [rdi+0x0],rsi 3c: 41 51 push r9 3e: e8 46 23 51 e1 call 0xffffffffe1512389 43: 41 59 pop r9 45: 41 51 push r9 47: e8 3d 23 51 e1 call 0xffffffffe1512389 4c: 41 59 pop r9 4e: 41 51 push r9 50: e8 34 23 51 e1 call 0xffffffffe1512389 55: 41 59 pop r9 57: 31 c0 xor eax,eax 59: c9 leave 5a: c3 ret