>
> On Tue, 18 Nov 2014 14:01:06 +, Kan Liang wrote:
> >> On Fri, 14 Nov 2014 08:44:12 -0500, kan liang wrote:
> >> > +/* LBR only affects the user callchain */
> >> > +if (i != chain_nr) {
> >> > +struct branch_stack *lbr_stack =
On Tue, 18 Nov 2014 14:01:06 +, Kan Liang wrote:
On Fri, 14 Nov 2014 08:44:12 -0500, kan liang wrote:
+/* LBR only affects the user callchain */
+if (i != chain_nr) {
+struct branch_stack *lbr_stack = sample-
On Tue, 18 Nov 2014 14:01:06 +, Kan Liang wrote:
>> On Fri, 14 Nov 2014 08:44:12 -0500, kan liang wrote:
>> > + /* LBR only affects the user callchain */
>> > + if (i != chain_nr) {
>> > + struct branch_stack *lbr_stack = sample-
>> >branch_stack;
>> > +
Hi Kan,
On Tue, 18 Nov 2014 19:40:23 +, Kan Liang wrote:
>> > whole
>> > > >> stack.
>> > > >> > +*/
>> > > >>
>> > > >> Andi is using some sanity checks:
>> > > >> http://marc.info/?l=linux-kernel=141584447819894=2
>> > > >> I guess this could be applied in here, once his
> > whole
> > > >> stack.
> > > >> > + */
> > > >>
> > > >> Andi is using some sanity checks:
> > > >> http://marc.info/?l=linux-kernel=141584447819894=2
> > > >> I guess this could be applied in here, once his patch gets in.
> > > >>
> > > >
> > > > Are you suggesting me to
> On Tue, Nov 18, 2014 at 03:13:50PM +0900, Namhyung Kim wrote:
>
> SNIP
>
> > >> > + * in "from" register, while the callee is
> stored
> > >> > + * in "to" register.
> > >> > + * For example, there is a call stack
> > >> > +
> On Fri, 14 Nov 2014 08:44:12 -0500, kan liang wrote:
> > + /* LBR only affects the user callchain */
> > + if (i != chain_nr) {
> > + struct branch_stack *lbr_stack = sample-
> >branch_stack;
> > + int lbr_nr = lbr_stack->nr;
> > +
On Tue, Nov 18, 2014 at 03:13:50PM +0900, Namhyung Kim wrote:
SNIP
+ * in from register, while the callee is
stored
+ * in to register.
+ * For example, there is a call stack
+ *
whole
stack.
+ */
Andi is using some sanity checks:
http://marc.info/?l=linux-kernelm=141584447819894w=2
I guess this could be applied in here, once his patch gets in.
Are you suggesting me to remove the comments, or rebase the
whole
Hi Kan,
On Tue, 18 Nov 2014 19:40:23 +, Kan Liang wrote:
whole
stack.
+*/
Andi is using some sanity checks:
http://marc.info/?l=linux-kernelm=141584447819894w=2
I guess this could be applied in here, once his patch gets in.
Are you
On Tue, 18 Nov 2014 14:01:06 +, Kan Liang wrote:
On Fri, 14 Nov 2014 08:44:12 -0500, kan liang wrote:
+ /* LBR only affects the user callchain */
+ if (i != chain_nr) {
+ struct branch_stack *lbr_stack = sample-
branch_stack;
+ int
On Fri, 14 Nov 2014 08:44:12 -0500, kan liang wrote:
+ /* LBR only affects the user callchain */
+ if (i != chain_nr) {
+ struct branch_stack *lbr_stack = sample-
branch_stack;
+ int lbr_nr = lbr_stack-nr;
+ /*
On Tue, Nov 18, 2014 at 03:13:50PM +0900, Namhyung Kim wrote:
SNIP
> >> > + * in "from" register, while the callee is
> >> > stored
> >> > + * in "to" register.
> >> > + * For example, there is a call stack
> >> > +
On Fri, 14 Nov 2014 08:44:12 -0500, kan liang wrote:
> + /* LBR only affects the user callchain */
> + if (i != chain_nr) {
> + struct branch_stack *lbr_stack = sample->branch_stack;
> + int lbr_nr = lbr_stack->nr;
> +
On Mon, 17 Nov 2014 17:41:32 +, Kan Liang wrote:
>> SNIP
>>
>> > diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
>> > index f4478ce..335c3a9 100644
>> > --- a/tools/perf/util/session.c
>> > +++ b/tools/perf/util/session.c
>> > @@ -557,15 +557,63 @@ int
On Mon, 17 Nov 2014 16:55:53 +0100, Jiri Olsa wrote:
> On Fri, Nov 14, 2014 at 08:44:12AM -0500, kan.li...@intel.com wrote:
>
> SNIP
>
>> +if (lbr) {
>> +for (i = 0; i < chain_nr; i++) {
>> +if (chain->ips[i] == PERF_CONTEXT_USER)
>> +
> SNIP
>
> > diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> > index f4478ce..335c3a9 100644
> > --- a/tools/perf/util/session.c
> > +++ b/tools/perf/util/session.c
> > @@ -557,15 +557,63 @@ int perf_session_queue_event(struct
> perf_session *s, union perf_event *event,
> >
On Fri, Nov 14, 2014 at 08:44:12AM -0500, kan.li...@intel.com wrote:
SNIP
> + if (lbr) {
> + for (i = 0; i < chain_nr; i++) {
> + if (chain->ips[i] == PERF_CONTEXT_USER)
> + break;
> + }
> +
> + /* LBR only
On Fri, Nov 14, 2014 at 08:44:12AM -0500, kan.li...@intel.com wrote:
SNIP
> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> index f4478ce..335c3a9 100644
> --- a/tools/perf/util/session.c
> +++ b/tools/perf/util/session.c
> @@ -557,15 +557,63 @@ int
On Fri, Nov 14, 2014 at 08:44:12AM -0500, kan.li...@intel.com wrote:
SNIP
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index f4478ce..335c3a9 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -557,15 +557,63 @@ int
On Fri, Nov 14, 2014 at 08:44:12AM -0500, kan.li...@intel.com wrote:
SNIP
+ if (lbr) {
+ for (i = 0; i chain_nr; i++) {
+ if (chain-ips[i] == PERF_CONTEXT_USER)
+ break;
+ }
+
+ /* LBR only affects
SNIP
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index f4478ce..335c3a9 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -557,15 +557,63 @@ int perf_session_queue_event(struct
perf_session *s, union perf_event *event,
return 0;
On Mon, 17 Nov 2014 17:41:32 +, Kan Liang wrote:
SNIP
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index f4478ce..335c3a9 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -557,15 +557,63 @@ int perf_session_queue_event(struct
On Mon, 17 Nov 2014 16:55:53 +0100, Jiri Olsa wrote:
On Fri, Nov 14, 2014 at 08:44:12AM -0500, kan.li...@intel.com wrote:
SNIP
+if (lbr) {
+for (i = 0; i chain_nr; i++) {
+if (chain-ips[i] == PERF_CONTEXT_USER)
+break;
+
On Fri, 14 Nov 2014 08:44:12 -0500, kan liang wrote:
+ /* LBR only affects the user callchain */
+ if (i != chain_nr) {
+ struct branch_stack *lbr_stack = sample-branch_stack;
+ int lbr_nr = lbr_stack-nr;
+ /*
On Tue, Nov 18, 2014 at 03:13:50PM +0900, Namhyung Kim wrote:
SNIP
+ * in from register, while the callee is
stored
+ * in to register.
+ * For example, there is a call stack
+ *
From: Kan Liang
LBR call stack only has user callchain. It is output as
PERF_SAMPLE_BRANCH_STACK data format. For the kernel callchain, it's
still from PERF_SAMPLE_CALLCHAIN.
The perf tool has to handle both data sources to construct a
complete callstack.
For perf report -D option, both lbr and
From: Kan Liang kan.li...@intel.com
LBR call stack only has user callchain. It is output as
PERF_SAMPLE_BRANCH_STACK data format. For the kernel callchain, it's
still from PERF_SAMPLE_CALLCHAIN.
The perf tool has to handle both data sources to construct a
complete callstack.
For perf report -D
28 matches
Mail list logo