diff options
author | Peter Zijlstra <[email protected]> | 2024-09-03 10:46:00 -0700 |
---|---|---|
committer | Peter Zijlstra <[email protected]> | 2024-09-05 16:56:14 +0200 |
commit | 04b01625da130c7521b768996cd5e48052198b97 (patch) | |
tree | d9f6d4adae5de1747d91f31fc70a9558c19e6127 /tools/testing/selftests/bpf/progs/test_autoload.c | |
parent | cc01bd044e6a521d2cd128f685ee8d23ef0067f2 (diff) |
perf/uprobe: split uprobe_unregister()
With uprobe_unregister() having grown a synchronize_srcu(), it becomes
fairly slow to call. Esp. since both users of this API call it in a
loop.
Peel off the sync_srcu() and do it once, after the loop.
We also need to add uprobe_unregister_sync() into uprobe_register()'s
error handling path, as we need to be careful about returning to the
caller before we have a guarantee that partially attached consumer won't
be called anymore. This is an unlikely slow path and this should be
totally fine to be slow in the case of a failed attach.
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Signed-off-by: "Peter Zijlstra (Intel)" <[email protected]>
Co-developed-by: Andrii Nakryiko <[email protected]>
Signed-off-by: Andrii Nakryiko <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Reviewed-by: Oleg Nesterov <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_autoload.c')
0 files changed, 0 insertions, 0 deletions