-
Notifications
You must be signed in to change notification settings - Fork 5
fprobe: use rhashtable for fprobe_ip_table #5666
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fprobe: use rhashtable for fprobe_ip_table #5666
Conversation
|
Upstream branch: e8d780d |
9879802 to
dbe33e3
Compare
|
Upstream branch: 821c9e5 |
69f825f to
2ce3b35
Compare
dbe33e3 to
6409044
Compare
|
Upstream branch: a6923c0 |
2ce3b35 to
f6a3297
Compare
6409044 to
9db1c0b
Compare
For now, all the kernel functions who are hooked by the fprobe will be added to the hash table "fprobe_ip_table". The key of it is the function address, and the value of it is "struct fprobe_hlist_node". The budget of the hash table is FPROBE_IP_TABLE_SIZE, which is 256. And this means the overhead of the hash table lookup will grow linearly if the count of the functions in the fprobe more than 256. When we try to hook all the kernel functions, the overhead will be huge. Therefore, replace the hash table with rhltable to reduce the overhead. Signed-off-by: Menglong Dong <[email protected]>
We need to get all the kernel function that can be traced sometimes, so we move the get_syms() and get_addrs() in kprobe_multi_test.c to trace_helpers.c and rename it to bpf_get_ksyms() and bpf_get_addrs(). Signed-off-by: Menglong Dong <[email protected]>
Some functions is recursive for the kprobe_multi and impact the benchmark results. So just skip them. Signed-off-by: Menglong Dong <[email protected]>
For now, the benchmark for kprobe-multi is single, which means there is only 1 function is hooked during testing. Add the testing "kprobe-multi-all", which will hook all the kernel functions during the benchmark. And the "kretprobe-multi-all" is added too. Signed-off-by: Menglong Dong <[email protected]>
|
Upstream branch: f3af62b |
f6a3297 to
e94d630
Compare
|
Upstream branch: f3af62b |
9 similar comments
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
27 similar comments
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
|
Upstream branch: f3af62b |
Pull request for series with
subject: fprobe: use rhashtable for fprobe_ip_table
version: 3
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=987294