OSDN Git Service

bpf: enable stackmap with build_id in nmi context
authorSong Liu <songliubraving@fb.com>
Mon, 7 May 2018 17:50:48 +0000 (10:50 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 14 May 2018 21:29:45 +0000 (23:29 +0200)
commitbae77c5eb5b2107e300fb02da2311f2aa0d8ee3c
tree54161e53098e6b684e7eb03bab0082626f0307fe
parenta84880ef4352c61896028448d809e32f8646628d
bpf: enable stackmap with build_id in nmi context

Currently, we cannot parse build_id in nmi context because of
up_read(&current->mm->mmap_sem), this makes stackmap with build_id
less useful. This patch enables parsing build_id in nmi by putting
the up_read() call in irq_work. To avoid memory allocation in nmi
context, we use per cpu variable for the irq_work. As a result, only
one irq_work per cpu is allowed. If the irq_work is in-use, we
fallback to only report ips.

Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
init/Kconfig
kernel/bpf/stackmap.c