From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S938592AbdEXHKx (ORCPT ); Wed, 24 May 2017 03:10:53 -0400 Received: from terminus.zytor.com ([65.50.211.136]:36429 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933101AbdEXHKv (ORCPT ); Wed, 24 May 2017 03:10:51 -0400 Date: Wed, 24 May 2017 00:06:04 -0700 From: tip-bot for Milian Wolff Message-ID: Cc: peterz@infradead.org, hpa@zytor.com, jolsa@redhat.com, yao.jin@linux.intel.com, milian.wolff@kdab.com, torvalds@linux-foundation.org, tglx@linutronix.de, dsahern@gmail.com, linux-kernel@vger.kernel.org, acme@redhat.com, jolsa@kernel.org, a.p.zijlstra@chello.nl, namhyung@kernel.org, mingo@kernel.org, acme@kernel.org Reply-To: acme@kernel.org, namhyung@kernel.org, mingo@kernel.org, a.p.zijlstra@chello.nl, jolsa@kernel.org, acme@redhat.com, linux-kernel@vger.kernel.org, dsahern@gmail.com, tglx@linutronix.de, milian.wolff@kdab.com, torvalds@linux-foundation.org, yao.jin@linux.intel.com, jolsa@redhat.com, hpa@zytor.com, peterz@infradead.org In-Reply-To: <20170524062129.32529-6-namhyung@kernel.org> References: <20170524062129.32529-6-namhyung@kernel.org> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/urgent] perf report: Always honor callchain order for inlined nodes Git-Commit-ID: 28071f51839e393f697d0d1df0b223a4bc373606 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: 28071f51839e393f697d0d1df0b223a4bc373606 Gitweb: http://git.kernel.org/tip/28071f51839e393f697d0d1df0b223a4bc373606 Author: Milian Wolff AuthorDate: Wed, 24 May 2017 15:21:27 +0900 Committer: Ingo Molnar CommitDate: Wed, 24 May 2017 08:41:48 +0200 perf report: Always honor callchain order for inlined nodes So far, the inlined nodes where only reversed when we built perf against libbfd. If that was not available, the addr2line fallback code path was missing the inline_list__reverse call. Now we always add the nodes in the correct order within inline_list__append. This removes the need to reverse the list and also ensures that all callers construct the list in the right order. Signed-off-by: Milian Wolff Signed-off-by: Namhyung Kim Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Yao Jin Cc: kernel-team@lge.com Link: http://lkml.kernel.org/r/20170524062129.32529-6-namhyung@kernel.org Signed-off-by: Ingo Molnar --- tools/perf/util/srcline.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c index 5e376d6..6af0364 100644 --- a/tools/perf/util/srcline.c +++ b/tools/perf/util/srcline.c @@ -56,7 +56,10 @@ static int inline_list__append(char *filename, char *funcname, int line_nr, } } - list_add_tail(&ilist->list, &node->val); + if (callchain_param.order == ORDER_CALLEE) + list_add_tail(&ilist->list, &node->val); + else + list_add(&ilist->list, &node->val); return 0; } @@ -200,14 +203,6 @@ static void addr2line_cleanup(struct a2l_data *a2l) #define MAX_INLINE_NEST 1024 -static void inline_list__reverse(struct inline_node *node) -{ - struct inline_list *ilist, *n; - - list_for_each_entry_safe_reverse(ilist, n, &node->val, list) - list_move_tail(&ilist->list, &node->val); -} - static int addr2line(const char *dso_name, u64 addr, char **file, unsigned int *line, struct dso *dso, bool unwind_inlines, struct inline_node *node) @@ -250,11 +245,6 @@ static int addr2line(const char *dso_name, u64 addr, ret = 1; } } - - if ((node != NULL) && - (callchain_param.order != ORDER_CALLEE)) { - inline_list__reverse(node); - } } if (file) {