From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754447AbaCKBFi (ORCPT ); Mon, 10 Mar 2014 21:05:38 -0400 Received: from mga09.intel.com ([134.134.136.24]:10684 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754341AbaCKBFe (ORCPT ); Mon, 10 Mar 2014 21:05:34 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,627,1389772800"; d="scan'208";a="469893772" From: Andi Kleen To: acme@infradead.org Cc: mingo@kernel.org, linux-kernel@vger.kernel.org, peterz@infradead.org, eranian@google.com, namhyung@kernel.org, jolsa@redhat.com Subject: Implement lbr-as-callgraph v5 Date: Mon, 10 Mar 2014 18:05:13 -0700 Message-Id: <1394499921-27668-1-git-send-email-andi@firstfloor.org> X-Mailer: git-send-email 1.8.5.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [Even more review feedback and some bugs addressed.] This patchkit implements lbr-as-callgraphs in per freport, as an alternative way to present LBR information. Current perf report does a histogram over the branch edges, which is useful to look at basic blocks, but doesn't tell you anything about the larger control flow behaviour. This patchkit adds a new option --branch-history that adds the branch paths to the callgraph history instead. This allows to reason about individual branch paths leading to specific samples. Also available at git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc perf/lbr-callgraph4 v2: - rebased on perf/core - fix various issues - rename the option to --branch-history - various fixes to display the information more concise v3: - White space changes - Consolidate some patches - Update some descriptions v4: - Fix various display problems - Unknown srcline is now printed as symbol+offset - Refactor some code to address review feedback - Merge with latest tip - Fix missing srcline display in stdio hist output. v5: - Rename functions - Fix gtk build problem - Fix crash without -g - Improve error messages - Improve srcline display in various ways Example output: % perf record -b -g ./tsrc/tcall [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.044 MB perf.data (~1923 samples) ] % perf report --branch-history ... 54.91% tcall.c:6 [.] f2 tcall | |--65.53%-- f2 tcall.c:5 | | | |--70.83%-- f1 tcall.c:11 | | f1 tcall.c:10 | | main tcall.c:18 | | main tcall.c:18 | | main tcall.c:17 | | main tcall.c:17 | | f1 tcall.c:13 | | f1 tcall.c:13 | | f2 tcall.c:7 | | f2 tcall.c:5 | | f1 tcall.c:12 | | f1 tcall.c:12 | | f2 tcall.c:7 | | f2 tcall.c:5 | | f1 tcall.c:11