Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932304AbbHJPjn (ORCPT ); Mon, 10 Aug 2015 11:39:43 -0400 Received: from mail.kernel.org ([198.145.29.136]:58172 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932097AbbHJPjm (ORCPT ); Mon, 10 Aug 2015 11:39:42 -0400 Date: Mon, 10 Aug 2015 12:39:37 -0300 From: Arnaldo Carvalho de Melo To: "Liang, Kan" Cc: Jiri Olsa , Namhyung Kim , Andi Kleen , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH RFC V9 2/3] perf,tools: per-event callgraph support Message-ID: <20150810153937.GC20967@kernel.org> References: <1438890294-33409-1-git-send-email-kan.liang@intel.com> <1438890294-33409-2-git-send-email-kan.liang@intel.com> <20150807153843.GD3325@kernel.org> <20150807154938.GE3325@kernel.org> <37D7C6CF3E00A74B8858931C1DB2F077018DE420@SHSMSX103.ccr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <37D7C6CF3E00A74B8858931C1DB2F077018DE420@SHSMSX103.ccr.corp.intel.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2557 Lines: 56 Em Mon, Aug 10, 2015 at 12:56:04PM +0000, Liang, Kan escreveu: > > Em Fri, Aug 07, 2015 at 12:38:43PM -0300, Arnaldo Carvalho de Melo escreveu: > > [root@zoo ~]# perf report --header-only > > # cmdline : > > /home/acme/bin/perf record -e {cpu/cpu-cycles,call- > > graph=fp,time,period=10000/pp,cpu/instructions,call- > > graph=no,time=0,period=20000/p} -a > > I get: > > Samples: 2K of event 'cpu/instructions,call- > > graph=no,time=0,period=20000/p', Event count (approx.): 46956518 > > Children Self Command Shared Object Symbol ◆ > > - 67.56% 0.00% qemu-system-x86 [unknown] [.] > > 0xad5e258d4c544155 ▒ > > 0xad5e258d4c544155 ▒ > > - 67.56% 0.00% qemu-system-x86 libc-2.20.so [.] __libc_start_main ▒ > > __libc_start_main ▒ > > 0xad5e258d4c544155 ▒ > > This is in the 'perf report' TUI, why, for an event with 'callgraph=no', we get > > callchains? How come? > That's the design. > For sampling multiple events, it may not be needed to collect callgraphs for > all of them. Because the sample sites are usually nearby. It's enough to collect > the callgraphs on a reference event. For other events, it can still show callgraphs > according to the callgraphs on a reference event. So, "call-graph=no" doesn't mean you don't want callchains for a particular events _if_ there is another event in the group for which callchains is available. But if "call-graph=no" for all events, then, yes, "no" means really "no". :-) I think we should use "call-graph=ref" to mean that no callchains should be requested to the kernel infrastructure for that particular event, but that when doing the report, use callchains available in some other event (perhaps would be good to specify which one), while "call-graph=no" really means "no", i.e. no callchains asked from the kernel for this event, and _no_ callchains to appear on report. If "ref" is used and no callchains are available anywhere, that is a bug as well, i.e. I asked for callchains up to a event to be used, by getting that info from another event, but no event has callchains: error. - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/