diff options
| author | Song Liu <[email protected]> | 2021-11-05 23:23:29 +0000 |
|---|---|---|
| committer | Alexei Starovoitov <[email protected]> | 2021-11-07 19:54:51 +0000 |
| commit | 7c7e3d31e7856a8260a254f8c71db416f7f9f5a1 (patch) | |
| tree | d2754fa3a377dd507bfa4e6131e554f3d011d844 /tools/bpf/bpftool/prog.c | |
| parent | Merge branch 'Fix leaks in libbpf and selftests' (diff) | |
| download | kernel-7c7e3d31e7856a8260a254f8c71db416f7f9f5a1.tar.gz kernel-7c7e3d31e7856a8260a254f8c71db416f7f9f5a1.zip | |
bpf: Introduce helper bpf_find_vma
In some profiler use cases, it is necessary to map an address to the
backing file, e.g., a shared library. bpf_find_vma helper provides a
flexible way to achieve this. bpf_find_vma maps an address of a task to
the vma (vm_area_struct) for this address, and feed the vma to an callback
BPF function. The callback function is necessary here, as we need to
ensure mmap_sem is unlocked.
It is necessary to lock mmap_sem for find_vma. To lock and unlock mmap_sem
safely when irqs are disable, we use the same mechanism as stackmap with
build_id. Specifically, when irqs are disabled, the unlocked is postponed
in an irq_work. Refactor stackmap.c so that the irq_work is shared among
bpf_find_vma and stackmap helpers.
Signed-off-by: Song Liu <[email protected]>
Signed-off-by: Alexei Starovoitov <[email protected]>
Tested-by: Hengqi Chen <[email protected]>
Acked-by: Yonghong Song <[email protected]>
Link: https://lore.kernel.org/bpf/[email protected]
Diffstat (limited to 'tools/bpf/bpftool/prog.c')
0 files changed, 0 insertions, 0 deletions
