-
Notifications
You must be signed in to change notification settings - Fork 150
Pass external callchain entry to get_perf_callchain #10263
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
base: bpf-next_base
Are you sure you want to change the base?
Conversation
|
Upstream branch: 026bcf9 |
|
Upstream branch: 3249e8a |
7e8242e to
9e9f2fa
Compare
910d3ce to
50dc55d
Compare
|
Upstream branch: f1d8c65 |
9e9f2fa to
2daf675
Compare
50dc55d to
f882b4c
Compare
|
Upstream branch: 93ce3be |
2daf675 to
fbe4343
Compare
f882b4c to
4752827
Compare
|
Upstream branch: 93ce3be |
From BPF stack map, we want to ensure that the callchain buffer will not be overwritten by other preemptive tasks. Peter suggested provide more flexible stack-sampling APIs, which can be used in BPF, and we can still use the perf callchain entry with the help of these APIs. The next patch will modify the BPF part. In the future, these APIs will also make it convenient for us to add stack-sampling kfuncs in the eBPF subsystem, just as Andrii and Alexei discussed earlier. Signed-off-by: Peter Zijlstra <[email protected]> Signed-off-by: Tao Chen <[email protected]>
As Alexei noted, get_perf_callchain() return values may be reused if a task is preempted after the BPF program enters migrate disable mode. The perf_callchain_entres has a small stack of entries, and we can reuse it as follows: 1. get the perf callchain entry 2. BPF use... 3. put the perf callchain entry And Peter suggested that get_recursion_context used with preemption disabled, so we should disable preemption at BPF side. Signed-off-by: Tao Chen <[email protected]> Acked-by: Yonghong Song <[email protected]>
fbe4343 to
14687dc
Compare
Pull request for series with
subject: Pass external callchain entry to get_perf_callchain
version: 6
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=1022592