linux/init
Song Liu bae77c5eb5 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>
2018-05-14 23:29:45 +02:00
..
calibrate.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
do_mounts_initrd.c kernel: add ksys_setsid() helper; remove in-kernel call to sys_setsid() 2018-04-02 20:16:06 +02:00
do_mounts_md.c fs: add ksys_ioctl() helper; remove in-kernel calls to sys_ioctl() 2018-04-02 20:16:03 +02:00
do_mounts_rd.c init/ramdisk: use pr_cont() at the end of ramdisk loading 2018-04-11 10:28:36 -07:00
do_mounts.c fs: add ksys_read() helper; remove in-kernel calls to sys_read() 2018-04-02 20:16:04 +02:00
do_mounts.h fs: add do_mknodat() helper and ksys_mknod() wrapper; remove in-kernel calls to syscall 2018-04-02 20:15:56 +02:00
init_task.c Expand the INIT_SIGNALS and INIT_SIGHAND macros and remove 2018-01-17 11:30:16 +00:00
initramfs.c fs: add ksys_getdents64() helper; remove in-kernel calls to sys_getdents64() 2018-04-02 20:16:02 +02:00
Kconfig bpf: enable stackmap with build_id in nmi context 2018-05-14 23:29:45 +02:00
main.c seq_file: allocate seq_file from kmem_cache 2018-04-11 10:28:36 -07:00
Makefile Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
noinitramfs.c fs: add do_mknodat() helper and ksys_mknod() wrapper; remove in-kernel calls to syscall 2018-04-02 20:15:56 +02:00
version.c init/version.c: include <linux/export.h> instead of <linux/module.h> 2017-11-17 16:10:02 -08:00