Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1408633

[tip:perf/urgent] perf record: Fix crash when kptr is restricted

From tip-bot for Wang Nan <tipbot@zytor.com>
Newsgroups linux.kernel
Subject [tip:perf/urgent] perf record: Fix crash when kptr is restricted
Date 2016-05-29 20:30 +0200
Message-ID <rEdDk-1lm-27@gated-at.bofh.it> (permalink)
References <rCgYF-1um-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Commit-ID:  3dc6c1d54ff4cc9ce7e8513c286c970304cde20b
Gitweb:     http://git.kernel.org/tip/3dc6c1d54ff4cc9ce7e8513c286c970304cde20b
Author:     Wang Nan <wangnan0@huawei.com>
AuthorDate: Tue, 24 May 2016 09:21:28 +0000
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Fri, 27 May 2016 09:41:39 -0300

perf record: Fix crash when kptr is restricted

Before this patch, a simple 'perf record' could fail if kptr_restrict is
set to 1 (for normal user) or 2 (for root):

  # perf record ls
  WARNING: Kernel address maps (/proc/{kallsyms,modules}) are restricted,
  check /proc/sys/kernel/kptr_restrict.

  Samples in kernel functions may not be resolved if a suitable vmlinux
  file is not found in the buildid cache or in the vmlinux path.

  Samples in kernel modules won't be resolved at all.

  If some relocation was applied (e.g. kexec) symbols may be misresolved
  even with a suitable vmlinux or kallsyms file.

  Segmentation fault (core dumped)

This patch skips perf_event__synthesize_kernel_mmap() when kptr is not
available.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Fixes: 45e90056904b ("perf machine: Do not bail out if not managing to read ref reloc symbol")
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1464081688-167940-2-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/event.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index f6fcc68..9b141f1 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -673,6 +673,8 @@ int perf_event__synthesize_kernel_mmap(struct perf_tool *tool,
 	int err;
 	union perf_event *event;
 
+	if (symbol_conf.kptr_restrict)
+		return -1;
 	if (map == NULL)
 		return -1;
 

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 1/2] perf tools: Check kptr_restrict for root Wang Nan <wangnan0@huawei.com> - 2016-05-24 11:30 +0200
  [PATCH 2/2] perf record: Fix crash when kptr is restricted Wang Nan <wangnan0@huawei.com> - 2016-05-24 11:40 +0200
    Re: [PATCH 2/2] perf record: Fix crash when kptr is restricted Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-24 14:30 +0200
    Re: [PATCH 2/2] perf record: Fix crash when kptr is restricted Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-24 14:50 +0200
    [tip:perf/urgent] perf record: Fix crash when kptr is restricted tip-bot for Wang Nan <tipbot@zytor.com> - 2016-05-29 20:30 +0200
  Re: [PATCH 1/2] perf tools: Check kptr_restrict for root Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-24 14:30 +0200
  [tip:perf/urgent] perf symbols: Check kptr_restrict for root tip-bot for Wang Nan <tipbot@zytor.com> - 2016-05-29 20:20 +0200

csiph-web