From: Andi Kleen <ak@linux.intel.com>
To: Namhyung Kim <namhyung@gmail.com>
Cc: Andi Kleen <andi@firstfloor.org>,
jolsa@redhat.com, linux-kernel@vger.kernel.org,
acme@infradead.org
Subject: Re: [PATCH 1/9] perf, tools: Support handling complete branch stacks as histograms v6
Date: Fri, 23 May 2014 14:35:03 -0700 [thread overview]
Message-ID: <20140523213503.GD29957@tassilo.jf.intel.com> (raw)
In-Reply-To: <87fvk6ji10.fsf@sejong.aot.lge.com>
On Mon, May 19, 2014 at 05:21:15PM +0900, Namhyung Kim wrote:
> This is gone with 540476de74c9 ("perf tools: Remove
> symbol_conf.use_callchain check").
The patchkit applies to tip/perf/core.
> > + * Check for overlap into the callchain.
> > + * The return address is one off compared to
> > + * the branch entry. To adjust for this
> > + * assume the calling instruction is not longer
> > + * than 8 bytes.
> > + */
> > + if (be[i].from < chain->ips[first_call] &&
> > + be[i].from >= chain->ips[first_call] - 8)
> > + first_call++;
>
> It seems that you need to check chain->ips[first_call] is greater than
> PERF_CONTEXT_MAX and use such value as the cpumode...
I don't understand the comment. The only IP that gets resolved is the from/to.
And add_callchain_ip does it own resolution.
Wouldn't make any sense to get it from first_call
>
>
> > + } else
> > + be[i] = branch->entries[branch->nr - i - 1];
> > + }
> > +
> > + nr = remove_loops(be, nr);
> > +
> > + for (i = 0; i < nr; i++) {
> > + err = add_callchain_ip(machine, thread, parent,
> > + root_al,
> > + -1, be[i].to);
> > + if (!err)
> > + err = add_callchain_ip(machine, thread,
> > + parent, root_al,
> > + -1, be[i].from);
>
> ... for here.
>
>
> > + if (err == -EINVAL)
> > + break;
> > + if (err)
> > + return err;
> > + }
> > + chain_nr -= nr;
>
> It seems it could make some callchain nodes being ignored. What if a
> case like small callchains with matches to only 2 nodes in the LBR?
>
> nr = 16, chain_nr = 10 and first_call = 2
The chain_nr variable is just to handle it when the user
specified a max_stack value. nr is always capped to max_stack too.
If lbr size is >= max_stack it will end up being 0 or negative and the
following loop to add normal call stack entries will do nothing.
I think that's the correct behavior.
-Andi
next prev parent reply other threads:[~2014-05-23 21:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-16 17:05 Implement lbr-as-callgraph v7 Andi Kleen
2014-05-16 17:05 ` [PATCH 1/9] perf, tools: Support handling complete branch stacks as histograms v6 Andi Kleen
2014-05-19 8:21 ` Namhyung Kim
2014-05-23 21:35 ` Andi Kleen [this message]
2014-05-26 2:45 ` Namhyung Kim
2014-05-16 17:05 ` [PATCH 2/9] perf, tools: Add --branch-history option to report v3 Andi Kleen
2014-05-19 8:26 ` Namhyung Kim
2014-05-23 18:11 ` Andi Kleen
2014-05-26 2:55 ` Namhyung Kim
2014-05-16 17:05 ` [PATCH 3/9] perf, tools: Enable printing the srcline in the history v4 Andi Kleen
2014-05-16 17:05 ` [PATCH 4/9] perf, tools: Only print base source file for srcline Andi Kleen
2014-05-16 17:05 ` [PATCH 5/9] perf, tools: Support source line numbers in annotate Andi Kleen
2014-05-16 17:05 ` [PATCH 6/9] perf, tools: Fix srcline sort key output to use width Andi Kleen
2014-05-16 17:05 ` [PATCH 7/9] tools, perf: Make get_srcline fall back to sym+offset Andi Kleen
2014-05-16 17:05 ` [PATCH 8/9] tools, perf: Make srcline output address with -v Andi Kleen
2014-05-16 17:05 ` [PATCH 9/9] tools, perf: Add asprintf replacement Andi Kleen
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=20140523213503.GD29957@tassilo.jf.intel.com \
--to=ak@linux.intel.com \
--cc=acme@infradead.org \
--cc=andi@firstfloor.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@gmail.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.