From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: "Jin, Yao" <yao.jin@linux.intel.com>
Cc: jolsa@kernel.org, Linux-kernel@vger.kernel.org,
ak@linux.intel.com, kan.liang@intel.com
Subject: Re: [PATCH v2 0/5] perf report: Show inline stack
Date: Wed, 7 Dec 2016 11:30:07 -0300 [thread overview]
Message-ID: <20161207143007.GG8257@kernel.org> (raw)
In-Reply-To: <601c4a7b-0806-e0dc-9783-7484d7c9ed64@linux.intel.com>
Em Wed, Dec 07, 2016 at 01:38:29PM +0800, Jin, Yao escreveu:
> So sorry, please ignore this v2 patch series.
>
> I missed the Arnaldo other comments which were added in the code.
>
> I will RESEND v2 patch series later.
No problem, but in the future just bump the version, i.e. ask for me to
disregard v2 and wait for v3 :-)
And thanks a lot for taking the time to address my requests and
suggestions, really appreciated!
- Arnaldo
>
> On 12/7/2016 9:30 PM, Jin Yao wrote:
> > v2: Thanks so much for Arnaldo's comments!
> > The modifications are:
> >
> > 1. Divide v1 patch "perf report: Find the inline stack for a
> > given address" into 2 patches:
> > a. perf report: Refactor common code in srcline.c
> > b. perf report: Find the inline stack for a given address
> >
> > Some function names are changed:
> > dso_name_get -> dso__name
> > ilist_apend -> inline_list__append
> > get_inline_node -> inline__node
> > free_inline_node -> inline_node__free
> >
> > 2. Since the function name are changed, update following patches
> > accordingly.
> > a. perf report: Show inline stack in stdio mode
> > b. perf report: Show inline stack in browser mode
> >
> > 3. Rebase to latest perf/core branch. This patch is impacted.
> > a. perf report: Create a new option "--inline"
> >
> > v1: Initial post
> >
> > It would be useful for perf to support a mode to query the
> > inline stack for callgraph addresses. This would simplify
> > finding the right code in code that does a lot of inlining.
> >
> > For example, the c code:
> >
> > static inline void f3(void)
> > {
> > int i;
> > for (i = 0; i < 1000;) {
> >
> > if(i%2)
> > i++;
> > else
> > i++;
> > }
> > printf("hello f3\n"); /* D */
> > }
> >
> > /* < CALLCHAIN: f2 <- f1 > */
> > static inline void f2(void)
> > {
> > int i;
> > for (i = 0; i < 100; i++) {
> > f3(); /* C */
> > }
> > }
> >
> > /* < CALLCHAIN: f1 <- main > */
> > static inline void f1(void)
> > {
> > int i;
> > for (i = 0; i < 100; i++) {
> > f2(); /* B */
> > }
> > }
> >
> > /* < CALLCHAIN: main <- TOP > */
> > int main()
> > {
> > struct timeval tv;
> > time_t start, end;
> >
> > gettimeofday(&tv, NULL);
> > start = end = tv.tv_sec;
> > while((end - start) < 5) {
> > f1(); /* A */
> > gettimeofday(&tv, NULL);
> > end = tv.tv_sec;
> > }
> > return 0;
> > }
> >
> > The printed inline stack is:
> >
> > 0.05% test2 test2 [.] main
> > |
> > ---/home/perf-dev/lck-2867/test/test2.c:27 (inline)
> > /home/perf-dev/lck-2867/test/test2.c:35 (inline)
> > /home/perf-dev/lck-2867/test/test2.c:45 (inline)
> > /home/perf-dev/lck-2867/test/test2.c:61 (inline)
> >
> > I tag A/B/C/D in above c code to indicate the source line,
> > actually the inline stack is equal to:
> >
> > 0.05% test2 test2 [.] main
> > |
> > ---D
> > C
> > B
> > A
> >
> > Jin Yao (5):
> > perf report: Refactor common code in srcline.c
> > perf report: Find the inline stack for a given address
> > perf report: Create a new option "--inline"
> > perf report: Show inline stack in stdio mode
> > perf report: Show inline stack in browser mode
> >
> > tools/perf/Documentation/perf-report.txt | 4 +
> > tools/perf/builtin-report.c | 2 +
> > tools/perf/ui/browsers/hists.c | 98 ++++++++++++++-
> > tools/perf/ui/stdio/hist.c | 56 ++++++++-
> > tools/perf/util/hist.c | 5 +
> > tools/perf/util/sort.h | 1 +
> > tools/perf/util/srcline.c | 207 ++++++++++++++++++++++++++-----
> > tools/perf/util/symbol.h | 3 +-
> > tools/perf/util/util.h | 14 +++
> > 9 files changed, 356 insertions(+), 34 deletions(-)
> >
next prev parent reply other threads:[~2016-12-07 14:30 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-07 13:30 [PATCH v2 0/5] perf report: Show inline stack Jin Yao
2016-12-07 5:38 ` Jin, Yao
2016-12-07 14:30 ` Arnaldo Carvalho de Melo [this message]
2016-12-08 0:41 ` Jin, Yao
2016-12-07 13:30 ` [PATCH v2 1/5] perf report: Refactor common code in srcline.c Jin Yao
2016-12-07 13:30 ` [PATCH v2 2/5] perf report: Find the inline stack for a given address Jin Yao
2016-12-07 13:30 ` [PATCH v2 3/5] perf report: Create a new option "--inline" Jin Yao
2016-12-07 13:30 ` [PATCH v2 4/5] perf report: Show inline stack in stdio mode Jin Yao
2016-12-07 13:30 ` [PATCH v2 5/5] perf report: Show inline stack in browser mode Jin Yao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161207143007.GG8257@kernel.org \
--to=acme@kernel.org \
--cc=Linux-kernel@vger.kernel.org \
--cc=ak@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=yao.jin@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.