From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932596AbcEXM0g (ORCPT ); Tue, 24 May 2016 08:26:36 -0400 Received: from mail.kernel.org ([198.145.29.136]:35627 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932576AbcEXM0f (ORCPT ); Tue, 24 May 2016 08:26:35 -0400 Date: Tue, 24 May 2016 09:26:30 -0300 From: Arnaldo Carvalho de Melo To: Wang Nan Cc: pi3orama@163.com, linux-kernel@vger.kernel.org, Arnaldo Carvalho de Melo , Zefan Li Subject: Re: [PATCH 2/2] perf record: Fix crash when kptr is restricted Message-ID: <20160524122630.GQ8897@kernel.org> References: <1464081688-167940-1-git-send-email-wangnan0@huawei.com> <1464081688-167940-2-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1464081688-167940-2-git-send-email-wangnan0@huawei.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Tue, May 24, 2016 at 09:21:28AM +0000, Wang Nan escreveu: > Before this patch, a simple 'perf record' could fail if kptr_restrict > is set to 1 (for normal user) or 2 (for root): sorry, hadn't seen this one, applying. :-) - Arnaldo > # 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 > Cc: Arnaldo Carvalho de Melo > Cc: Zefan Li > Cc: pi3orama@163.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; > > -- > 1.8.3.4