Re: [PATCH 2/2] perf tools: Construct LBR call chain

From: Jiri Olsa
Date: Wed Nov 12 2014 - 03:58:50 EST


On Thu, Nov 06, 2014 at 09:58:06AM -0500, kan.liang@xxxxxxxxx wrote:

SNIP

> + struct ip_callchain *chain = sample->callchain;
> u8 cpumode = PERF_RECORD_MISC_USER;
> int chain_nr = min(max_stack, (int)chain->nr);
> - int i;
> - int j;
> - int err;
> + int i, j, err = 0;
> int skip_idx __maybe_unused;
> + int lbr = 0;
> + u64 ip;
>
> callchain_cursor_reset(&callchain_cursor);
>
> @@ -1419,74 +1471,81 @@ static int thread__resolve_callchain_sample(struct thread *thread,
> return 0;
> }
>
> - /*
> - * Based on DWARF debug information, some architectures skip
> - * a callchain entry saved by the kernel.
> - */
> - skip_idx = arch_skip_callchain_idx(thread, chain);
> + if (evsel->attr.branch_sample_type & PERF_SAMPLE_BRANCH_CALL_STACK)
> + lbr = 1;

please put this in a function.. like

bool has_branch_callstack(evsel)

thanks,
jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/