linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 02/10] perf tools: Fix perf record as non root with kptr_restrict == 1
Date: Fri, 26 Sep 2014 17:19:39 -0300	[thread overview]
Message-ID: <1411762787-26113-3-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1411762787-26113-1-git-send-email-acme@kernel.org>

From: Andi Kleen <ak@linux.intel.com>

Currently perf record always errors out when you run it as non-root with
kptr_restrict == 1, which is often the default.

Make it only warn instead and fix the kernel resolve code to not
segfault later. Profiling works still fine, except kernel symbols are
not resolved.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1411594794-7229-1-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/event.c   | 8 ++++++--
 tools/perf/util/session.c | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index ed558191c0b3..4af6b279e34a 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -558,13 +558,17 @@ int perf_event__synthesize_kernel_mmap(struct perf_tool *tool,
 	struct map *map;
 	struct kmap *kmap;
 	int err;
+	union perf_event *event;
+
+	if (machine->vmlinux_maps[0] == NULL)
+		return -1;
+
 	/*
 	 * We should get this from /sys/kernel/sections/.text, but till that is
 	 * available use this, and after it is use this as a fallback for older
 	 * kernels.
 	 */
-	union perf_event *event = zalloc((sizeof(event->mmap) +
-					  machine->id_hdr_size));
+	event = zalloc((sizeof(event->mmap) + machine->id_hdr_size));
 	if (event == NULL) {
 		pr_debug("Not enough memory synthesizing mmap event "
 			 "for kernel modules\n");
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 6d2d50dea1d8..883406f4b381 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -119,7 +119,7 @@ struct perf_session *perf_session__new(struct perf_data_file *file,
 		 * kernel MMAP event, in perf_event__process_mmap().
 		 */
 		if (perf_session__create_kernel_maps(session) < 0)
-			goto out_delete;
+			pr_warning("Cannot read kernel map\n");
 	}
 
 	if (tool && tool->ordering_requires_timestamps &&
-- 
1.9.3


  parent reply	other threads:[~2014-09-26 20:22 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-26 20:19 [GIT PULL 00/10] perf/core improvements and fixes Arnaldo Carvalho de Melo
2014-09-26 20:19 ` [PATCH 01/10] perf stat: Fix --per-core on multi socket systems Arnaldo Carvalho de Melo
2014-09-26 20:19 ` Arnaldo Carvalho de Melo [this message]
2014-09-26 20:19 ` [PATCH 03/10] perf tools: Modify error code for when perf_session__new() fails Arnaldo Carvalho de Melo
2014-09-26 20:19 ` [PATCH 04/10] perf tools: Use ACCESS_ONCE() instead of volatile cast Arnaldo Carvalho de Melo
2014-09-26 20:19 ` [PATCH 05/10] perf hists browser: Fix callchain print bug on TUI Arnaldo Carvalho de Melo
2014-09-26 20:19 ` [PATCH 06/10] perf tools: Move callchain config from record_opts to callchain_param Arnaldo Carvalho de Melo
2014-09-26 20:19 ` [PATCH 07/10] perf callchain: Move some parser functions to callchain.c Arnaldo Carvalho de Melo
2014-09-26 20:19 ` [PATCH 08/10] perf tools: Introduce perf_callchain_config() Arnaldo Carvalho de Melo
2014-09-26 20:19 ` [PATCH 09/10] perf tools: Convert {record,top}.call-graph option to call-graph.record-mode Arnaldo Carvalho de Melo
2014-09-26 20:19 ` [PATCH 10/10] perf tools: Fix line number in the config file error message Arnaldo Carvalho de Melo
2014-09-27  7:20 ` [GIT PULL 00/10] perf/core improvements and fixes Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1411762787-26113-3-git-send-email-acme@kernel.org \
    --to=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).