Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755535AbbKRJqN (ORCPT ); Wed, 18 Nov 2015 04:46:13 -0500 Received: from szxga03-in.huawei.com ([119.145.14.66]:49999 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755433AbbKRJqJ (ORCPT ); Wed, 18 Nov 2015 04:46:09 -0500 Message-ID: <564C4508.8070407@huawei.com> Date: Wed, 18 Nov 2015 17:29:44 +0800 From: "Wangnan (F)" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Jiri Olsa CC: Jiri Olsa , Arnaldo Carvalho de Melo , lkml , David Ahern , "Peter Zijlstra" , Ingo Molnar , Namhyung Kim , Milian Wolff Subject: Re: [PATCHv2 2/3] perf tools: Add callchain order support for libunwind DWARF unwinder References: <1447772739-18471-1-git-send-email-jolsa@kernel.org> <1447772739-18471-3-git-send-email-jolsa@kernel.org> <564BFAD4.8060909@huawei.com> <20151118075247.GA5416@krava.brq.redhat.com> In-Reply-To: <20151118075247.GA5416@krava.brq.redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.111.66.109] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090205.564C48D4.0056,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 2c7b9bbe096f60506eca516615668cfb Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4128 Lines: 121 On 2015/11/18 15:52, Jiri Olsa wrote: > On Wed, Nov 18, 2015 at 12:13:08PM +0800, Wangnan (F) wrote: >> >> On 2015/11/17 23:05, Jiri Olsa wrote: >>> From: Jiri Olsa >>> >>> As reported by Milian, currently for DWARF unwind (both libdw >>> and libunwind) we display callchain in callee order only. >>> >>> Adding the support to follow callchain order setup to libunwind >>> DWARF unwinder, so we could get following output for report: >>> >>> $ perf record --call-graph dwarf ls >>> ... >>> $ perf report --no-children --stdio >>> >>> 39.26% ls libc-2.21.so [.] __strcoll_l >>> | >>> ---__strcoll_l >>> mpsort_with_tmp >>> mpsort_with_tmp >>> sort_files >>> main >>> __libc_start_main >>> _start >>> 0 >>> >>> $ perf report -g caller --no-children --stdio >>> ... >>> 39.26% ls libc-2.21.so [.] __strcoll_l >>> | >>> ---0 >>> _start >>> __libc_start_main >>> main >>> sort_files >>> mpsort_with_tmp >>> mpsort_with_tmp >>> __strcoll_l >>> >>> Reported-by: Milian Wolff >>> Based-on-patch-by: Milian Wolff >>> Link: http://lkml.kernel.org/n/tip-lmtbeqm403f3luw4jkjevsi5@git.kernel.org >>> Signed-off-by: Jiri Olsa >>> --- >>> tools/perf/util/unwind-libunwind.c | 47 ++++++++++++++++++++++++-------------- >>> 1 file changed, 30 insertions(+), 17 deletions(-) >>> >>> diff --git a/tools/perf/util/unwind-libunwind.c b/tools/perf/util/unwind-libunwind.c >>> index 0ae8844fe7a6..705e1c19f1ea 100644 >>> --- a/tools/perf/util/unwind-libunwind.c >>> +++ b/tools/perf/util/unwind-libunwind.c >> [SNIP] >> >>> - unw_get_reg(&c, UNW_REG_IP, &ip); >>> - ret = ip ? entry(ip, ui->thread, cb, arg) : 0; >> In original code if ip == 0 entry() won't be called. >> >>> + if (callchain_param.order == ORDER_CALLER) >>> + j = max_stack - i - 1; >>> + ret = entry(ips[j], ui->thread, cb, arg); > ouch.. the intention was not to breake current behaviour ;-) > > v2 is attached, it's also in perf/callchain_2 branch > > thanks, > jirka > > > --- > As reported by Milian, currently for DWARF unwind (both libdw > and libunwind) we display callchain in callee order only. > > Adding the support to follow callchain order setup to libunwind > DWARF unwinder, so we could get following output for report: > > $ perf record --call-graph dwarf ls > ... > $ perf report --no-children --stdio > > 39.26% ls libc-2.21.so [.] __strcoll_l > | > ---__strcoll_l > mpsort_with_tmp > mpsort_with_tmp > sort_files > main > __libc_start_main > _start > 0 > > $ perf report -g caller --no-children --stdio > ... > 39.26% ls libc-2.21.so [.] __strcoll_l > | > ---0 > _start > __libc_start_main > main > sort_files > mpsort_with_tmp > mpsort_with_tmp > __strcoll_l > > Reported-by: Milian Wolff > Based-on-patch-by: Milian Wolff > Link: http://lkml.kernel.org/n/tip-lmtbeqm403f3luw4jkjevsi5@git.kernel.org > Signed-off-by: Jiri Olsa This time behavior is not changed. Thank you. Tested-by: Wang Nan -- 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/