bpf: show real jited address in bpf_prog_info->jited_ksyms
authorSong Liu <songliubraving@fb.com>
Fri, 2 Nov 2018 17:16:16 +0000 (10:16 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 2 Nov 2018 20:39:01 +0000 (21:39 +0100)
Currently, jited_ksyms in bpf_prog_info shows page addresses of jited
bpf program. The main reason here is to not expose randomized start
address. However, this is not ideal for detailed profiling (find hot
instructions from stack traces). This patch replaces the page address
with real prog start address.

This change is OK because bpf_prog_get_info_by_fd() is only available
to root.

Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
kernel/bpf/syscall.c

index ccb93277aae2c607e7b6ef079e5432d89ef4a1f6..34a9eef5992c2f04e92e43f5d4ceb165fc1b1057 100644 (file)
@@ -2172,7 +2172,6 @@ static int bpf_prog_get_info_by_fd(struct bpf_prog *prog,
                        user_ksyms = u64_to_user_ptr(info.jited_ksyms);
                        for (i = 0; i < ulen; i++) {
                                ksym_addr = (ulong) prog->aux->func[i]->bpf_func;
-                               ksym_addr &= PAGE_MASK;
                                if (put_user((u64) ksym_addr, &user_ksyms[i]))
                                        return -EFAULT;
                        }