-
Notifications
You must be signed in to change notification settings - Fork 5
fprobe: use rhashtable for fprobe_ip_table #5762
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 #5762
Conversation
|
Upstream branch: 3ec8560 |
2842450 to
53b8665
Compare
|
Upstream branch: 1274163 |
1a6b577 to
546951b
Compare
53b8665 to
26f4a08
Compare
|
Upstream branch: d87fdb1 |
546951b to
f5f9880
Compare
26f4a08 to
032ad98
Compare
|
Upstream branch: dbe99ea |
f5f9880 to
c0546e5
Compare
032ad98 to
728c457
Compare
|
Upstream branch: 6850a33 |
c0546e5 to
a7cbd1f
Compare
728c457 to
a5fe106
Compare
|
Upstream branch: dbe99ea |
a7cbd1f to
2b409dc
Compare
a5fe106 to
34c4028
Compare
|
Upstream branch: 5c42715 |
2b409dc to
28c6bf9
Compare
34c4028 to
2ef6166
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]>
|
Upstream branch: bf7a6a6 |
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]>
28c6bf9 to
8dcf6e5
Compare
|
At least one diff in series https://patchwork.kernel.org/project/netdevbpf/list/?series=992227 expired. Closing PR. |
Pull request for series with
subject: fprobe: use rhashtable for fprobe_ip_table
version: 5
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=992227