From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966332AbeEYJvH (ORCPT ); Fri, 25 May 2018 05:51:07 -0400 Received: from terminus.zytor.com ([198.137.202.136]:47981 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965631AbeEYJvE (ORCPT ); Fri, 25 May 2018 05:51:04 -0400 Date: Fri, 25 May 2018 02:50:41 -0700 From: tip-bot for Alexey Budankov Message-ID: Cc: alexey.budankov@linux.intel.com, torvalds@linux-foundation.org, acme@redhat.com, linux-kernel@vger.kernel.org, namhyung@kernel.org, mingo@kernel.org, acme@kernel.org, tglx@linutronix.de, hpa@zytor.com, eranian@google.com, jolsa@redhat.com, peterz@infradead.org, alexander.shishkin@linux.intel.com, vincent.weaver@maine.edu Reply-To: acme@redhat.com, torvalds@linux-foundation.org, alexey.budankov@linux.intel.com, hpa@zytor.com, tglx@linutronix.de, jolsa@redhat.com, eranian@google.com, linux-kernel@vger.kernel.org, acme@kernel.org, namhyung@kernel.org, mingo@kernel.org, alexander.shishkin@linux.intel.com, peterz@infradead.org, vincent.weaver@maine.edu In-Reply-To: <311d4a34-f81b-5535-3385-01427ac73b41@linux.intel.com> References: <311d4a34-f81b-5535-3385-01427ac73b41@linux.intel.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf/x86: Store user space frame-pointer value on a sample Git-Commit-ID: 10b1105004fbd81058383537b67df35cc188ab62 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 10b1105004fbd81058383537b67df35cc188ab62 Gitweb: https://git.kernel.org/tip/10b1105004fbd81058383537b67df35cc188ab62 Author: Alexey Budankov AuthorDate: Thu, 24 May 2018 17:11:54 +0300 Committer: Ingo Molnar CommitDate: Fri, 25 May 2018 08:11:12 +0200 perf/x86: Store user space frame-pointer value on a sample Store user space frame-pointer value (BP register) into the perf trace on a sample for a process so the value becomes available when unwinding call stacks for functions gaining event samples. Signed-off-by: Alexey Budankov Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/311d4a34-f81b-5535-3385-01427ac73b41@linux.intel.com Signed-off-by: Ingo Molnar --- arch/x86/kernel/perf_regs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/perf_regs.c b/arch/x86/kernel/perf_regs.c index e47b2dbbdef3..c06c4c16c6b6 100644 --- a/arch/x86/kernel/perf_regs.c +++ b/arch/x86/kernel/perf_regs.c @@ -151,17 +151,19 @@ void perf_get_regs_user(struct perf_regs *regs_user, regs_user_copy->sp = user_regs->sp; regs_user_copy->cs = user_regs->cs; regs_user_copy->ss = user_regs->ss; - /* - * Most system calls don't save these registers, don't report them. + * Store user space frame-pointer value on sample + * to facilitate stack unwinding for cases when + * user space executable code has such support + * enabled at compile time: */ + regs_user_copy->bp = user_regs->bp; + regs_user_copy->bx = -1; - regs_user_copy->bp = -1; regs_user_copy->r12 = -1; regs_user_copy->r13 = -1; regs_user_copy->r14 = -1; regs_user_copy->r15 = -1; - /* * For this to be at all useful, we need a reasonable guess for * the ABI. Be careful: we're in NMI context, and we're