From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932358AbbJUS3S (ORCPT ); Wed, 21 Oct 2015 14:29:18 -0400 Received: from mail-ig0-f171.google.com ([209.85.213.171]:35528 "EHLO mail-ig0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932112AbbJUS3O (ORCPT ); Wed, 21 Oct 2015 14:29:14 -0400 MIME-Version: 1.0 In-Reply-To: References: <1444079018-31421-1-git-send-email-acme@kernel.org> <1444079018-31421-14-git-send-email-acme@kernel.org> <20151009215626.GM14409@kernel.org> <20151009222504.GN14409@kernel.org> <20151020120033.GB5119@kernel.org> <20151020121948.GA29289@lerouge> <20151020130651.GC5119@kernel.org> From: Brendan Gregg Date: Wed, 21 Oct 2015 11:28:54 -0700 Message-ID: Subject: Re: [PATCH 13/16] perf callchain: Switch default to 'graph,0.5,caller' To: Chandler Carruth Cc: Arnaldo Carvalho de Melo , Frederic Weisbecker , Ingo Molnar , LKML , Adrian Hunter , Borislav Petkov , David Ahern , Jiri Olsa , Namhyung Kim , Stephane Eranian , Wang Nan Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 20, 2015 at 7:21 PM, Chandler Carruth wrote: > Since Arnaldo asked, I thought I should actually try to respond specifically > to the question of why I favor the 'caller' view as the default. > > On Tue, Oct 20, 2015 at 3:06 AM Arnaldo Carvalho de Melo > wrote: >> >> > IMHO changing that order is not a good idea. Unless many users >> > complained >> > about it. >> >> Perhaps there are not that many users of callchains because the default >> is not what they're used to see? >> >> Motivation for the change came from a video from Chandler, that >> resurfaced the callchain default issue, Chandler? > > > So, first and foremost, thanks for fixing some of my gripes about the > usability of the perf tool, I'm super excited about the changes you're > making, even if this one isn't among them. > > I think the default of caller vs. callee is probably the hardest judgement > call to make about the right defaults. I can see it going both ways. > > When profiling my *system*, or a diverse group of programs or tasks, I often > find callee useful. Were I a kernel developer, I suspect callee would be > *dramatically* more common than caller. > > For me, what makes the caller view much more frequently desired is that I'm > usually profiling a fairly isolated application, or benchmark for an > isolated library. While I always start off with some more system-level > performance problem, I rarely need a detailed profile to get a reasonable > idea of what subsystem to stare at, and then I spend days looking at a > relatively isolated reproduction. > > Anyways, for profiling user-land applications, I suspect from my > conversations with users that "caller" is the more common expectation. [...] I would have said callee is the more common expectation, certainly for system profilers. I quickly checked various tools to see what their defaults are: callee: gdb lldb pstack jstack perf stap ktap dtrace kernel oops message jvm crash node.js/v8 crash caller: python traceback Python was the only one I knew off-hand that is caller by default (and it includes the text "most recent call last", suggesting the developers thought it was necessary to point out that it was different). Do you know what tools/profilers/debuggers these users are using? I really think people will be surprised if by default perf prints stacks differently to gdb, lldb, oops messages, etc, etc. That may be true for a specific developer community (eg, Python), but not for system profilers. Brendan