From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755886AbbJIUez (ORCPT ); Fri, 9 Oct 2015 16:34:55 -0400 Received: from mail-io0-f171.google.com ([209.85.223.171]:32880 "EHLO mail-io0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754741AbbJIUey (ORCPT ); Fri, 9 Oct 2015 16:34:54 -0400 MIME-Version: 1.0 In-Reply-To: <1444079018-31421-14-git-send-email-acme@kernel.org> References: <1444079018-31421-1-git-send-email-acme@kernel.org> <1444079018-31421-14-git-send-email-acme@kernel.org> From: Brendan Gregg Date: Fri, 9 Oct 2015 13:34:33 -0700 Message-ID: Subject: Re: [PATCH 13/16] perf callchain: Switch default to 'graph,0.5,caller' To: Arnaldo Carvalho de Melo Cc: Ingo Molnar , LKML , Arnaldo Carvalho de Melo , Adrian Hunter , Borislav Petkov , Chandler Carruth , David Ahern , Frederic Weisbecker , 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 Mon, Oct 5, 2015 at 2:03 PM, Arnaldo Carvalho de Melo wrote: > > From: Arnaldo Carvalho de Melo > > Which is the most common default found in other similar tools. Interactive tools, sure, like the perf report TUI. But this also changes the ordering of the non-interactive tools which dump stacks: "perf report -n --stdio" and "perf script". The most common default for dumping stacks is caller. Eg: # perf report -n --stdio [...] 16.87% 334 iperf [kernel.kallsyms] [k] copy_user_enhanced_fast_string | --- 0x7f0683ba1ccd system_call_fastpath sys_write vfs_write do_sync_write sock_aio_write do_sock_write.isra.10 inet_sendmsg copy_user_enhanced_fast_string [...] That's upside down. The current default preserves ordering from the informational line onwards: # perf report -n --stdio -g fractal,0.5,callee [...] 16.87% 334 iperf [kernel.kallsyms] [k] copy_user_enhanced_fast_string | --- copy_user_enhanced_fast_string | |--64.37%-- inet_sendmsg | do_sock_write.isra.10 | sock_aio_write | do_sync_write | vfs_write | sys_write | system_call_fastpath | 0x7f0683ba1ccd ... Those are just short examples. Another profile I'm working on now gets really messy on "perf report -n --stdio"; eg: perf report -n --stdio -g graph,0.5,caller 94.80% 0.10% 2 iperf [kernel.vmlinux] [k] entry_SYSCALL_64_fastpath | |--94.70%-- entry_SYSCALL_64_fastpath | | | |--55.76%-- sys_write | | | | | |--55.10%-- vfs_write | | | | | | | |--54.39%-- __vfs_write | | | | | | | | | --54.34%-- sock_write_iter | | | | | | | | | |--54.19%-- sock_sendmsg | | | | | | | | | | | |--53.99%-- inet_sendmsg | | | | | | | | | | | | | |--53.08%-- tcp_sendmsg | | | | | | | | | | | | | | | |--17.27%-- copy_user_enhanced_fast_string | | | | | | | | | | | | | | | |--11.41%-- tcp_push_one | | | | | | | | | | | | | | | | | |--11.31%-- tcp_write_xmit | | | | | | | | | | | | | | | | | | | |--10.00%-- tcp_transmit_skb | | | | | | | | | | | | | | | | | | | | | |--9.29%-- ip_queue_xmit | | | | | | | | | | | | | | | | | | | | | | | |--8.69%-- ip_local_out_sk | | | | | | | | | | | | | | | | | | | | | | | | | |--8.64%-- ip_output | | | | | | | | | | | | | ip_finish_output | | | | | | | | | | | | | | | | | | | | | | | | | | | |--8.43%-- ip_finish_output2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |--6.97%-- __local_bh_enable_ip | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |--6.82%-- do_softirq | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --6.77%-- do_softirq_own_stack | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |--6.46%-- __do_softirq [...] The current default never gets beyond 5 levels deep. The new default goes to 25 levels. At least with perf report I can override the default using "-g". perf script doesn't support that. Can this patch please preserve the callee ordering for non-interactive output? (perf script, perf report -n --stdio). Thanks, Brendan