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 13:06:39
Also in: bpf, lkml

On Wednesday, July 16, 2025 12:35 AM Alexei Starovoitov [off-list ref] write:
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 don't understand here :/

The rhashtable lookup is done at the beginning of the global trampoline,
which is called before we enter bpf prog. The bpf progs is stored in the
kfunc_md, and we need get them from the hash table.

If this is the only change, it is still OK. But according to my previous, the
rhashtable can cause ~7% addition overhead. So if we change both
them, the performance of tracing-multi is a little far from tracing, which
means ~25% performance gap for the functions that have no arguments.
About the rhashtable part, I'll do more research on it and feedback late.
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.
Sorry about that. I filtered out such message in my gmail, and
didn't notice it. I'll remove it from the CC in the feature :)

Thanks!
Menglong Dong

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help