Re: [PATCH v5 7/7] perf report: Show branch type in callchain entry

Jiri Olsa
2017-04-19T14:15:45Z

On Wed, Apr 19, 2017 at 11:48:14PM +0800, Jin Yao wrote:

SNIP

> +static int count_str_printf(int index, const char *str,
> + char *bf, int bfsize)
> +{
> + int printed;
> +
> + printed = scnprintf(bf, bfsize,
> + "%s%s",
> + (index) ? " " : " (", str);
> +
> + return printed;
> +}
> +
> +static int branch_type_str(struct branch_type_stat *stat,
> + char *bf, int bfsize)
> +{
> + int i, j = 0, printed = 0;
> + u64 total = 0;
> +
> + for (i = 0; i < PERF_BR_MAX; i++)
> + total += stat->counts[i];
> +
> + if (total == 0)
> + return 0;
> +
> + if (stat->jcc_fwd > 0)
> + printed += count_str_printf(j++, "JCC forward",
> + bf + printed, bfsize - printed);
> +
> + if (stat->jcc_bwd > 0)
> + printed += count_str_printf(j++, "JCC backward",
> + bf + printed, bfsize - printed);
> +
> + for (i = 0; i < PERF_BR_MAX; i++) {
> + if (i == PERF_BR_JCC)
> + continue;
> +
> + if (stat->counts[i] > 0)
> + printed += count_str_printf(j++, branch_type_name(i),
> + bf + printed, bfsize - printed);
> + }
> +
> + if (stat->cross_4k > 0)
> + printed += count_str_printf(j++, "CROSS_4K",
> + bf + printed, bfsize - printed);
> +
> + if (stat->cross_2m > 0)
> + printed += count_str_printf(j++, "CROSS_2M",
> + bf + printed, bfsize - printed);
> +
> + return printed;
> +}

could you please also move this one to that new branch.c file

thanks,
jirka