Thread (24 messages) 24 messages, 5 authors, 2025-08-08

Re: [PATCH bpf-next v2 02/18] x86,bpf: add bpf_global_caller for global trampoline

From: Menglong Dong <hidden>
Date: 2025-07-16 14:40:56
Also in: bpf, lkml

On Wed, Jul 16, 2025 at 12:35 AM Alexei Starovoitov
[off-list ref] wrote:
On Tue, Jul 15, 2025 at 1:37 AM Menglong Dong [off-list ref] wrote:
quoted

On 7/15/25 10:25, Alexei Starovoitov wrote:
[......]
quoted
According to my benchmark, it has ~5% overhead to save/restore
*5* variants when compared with *0* variant. The save/restore of regs
is fast, but it still need 12 insn, which can produce ~6% overhead.
I think it's an ok trade off, because with one global trampoline
we do not need to call rhashtable lookup before entering bpf prog.
bpf prog will do it on demand if/when it needs to access arguments.
This will compensate for a bit of lost performance due to extra save/restore.
I just think of another benefit of defining multiple global trampolines
here, which you may be interested in. In the feature, we can make
the global trampoline supports functions that have 7+ arguments.
If we use _one_ global trampoline, it's not possible, as we can't handle
the arguments in the stack. However, it's possible if we define
different global trampoline for the functions that have different arguments
count, and what we need to do in the feature is do some adjustment
to CALLER_DEFINE().

Wish you are interested in this idea :)

Thanks!
Menglong Dong

PS
pls don't add your chinatelecom.cn email in cc.
gmail just cannot deliver there and it's annoying to keep deleting
it manually in every reply.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help