Re: [PATCH] Bugfix perf script -F ip,brstack (and brstackoff)

From: Arnaldo Carvalho de Melo
Date: Fri Oct 06 2017 - 08:25:17 EST


Em Fri, Oct 06, 2017 at 01:07:22AM -0700, Mark Santaniello escreveu:
> Prior to commit 55b9b50811ca ("perf script: Support -F brstack,dso and
> brstacksym,dso"), we were printing a space before the brstack data. It
> seems that this space was important. Without it, parsing is difficult.
>
> Very sorry for the mistake.

Thanks, applied and added:

Cc: 4.13+ <stable@xxxxxxxxxxxxxxx>

As:

[acme@jouet linux]$ git tag --contains 55b9b50811ca | grep ^v4
v4.13
v4.13-rc1
v4.13-rc2
v4.13-rc3
v4.13-rc4
v4.13-rc5
v4.13-rc6
v4.13-rc7
v4.14-rc1
v4.14-rc2
v4.14-rc3
[acme@jouet linux]$

> Notice here how the "ip" and "brstack" run together:
>
> $ perf script -F ip,brstack | head -n 1
> 22e18c40x22e19e2/0x22e190b/P/-/-/0 0x22e19a1/0x22e19d0/P/-/-/0 0x22e195d/0x22e1990/P/-/-/0 0x22e18e9/0x22e1943/P/-/-/0 0x22e1a69/0x22e18c0/P/-/-/0 0x22e19f7/0x22e1a20/P/-/-/0 0x22e1910/0x22e19ee/P/-/-/0 0x22e19e2/0x22e190b/P/-/-/0 0x22e19a1/0x22e19d0/P/-/-/0 0x22e195d/0x22e1990/P/-/-/0 0x22e18e9/0x22e1943/P/-/-/0 0x22e1a69/0x22e18c0/P/-/-/0 0x22e19f7/0x22e1a20/P/-/-/0 0x22e1910/0x22e19ee/P/-/-/0 0x22e19e2/0x22e190b/P/-/-/0 0x22e19a1/0x22e19d0/P/-/-/0
>
> After this diff, sanity is restored:
>
> $ perf script -F ip,brstack | head -n 1
> 22e18c4 0x22e19e2/0x22e190b/P/-/-/0 0x22e19a1/0x22e19d0/P/-/-/0 0x22e195d/0x22e1990/P/-/-/0 0x22e18e9/0x22e1943/P/-/-/0 0x22e1a69/0x22e18c0/P/-/-/0 0x22e19f7/0x22e1a20/P/-/-/0 0x22e1910/0x22e19ee/P/-/-/0 0x22e19e2/0x22e190b/P/-/-/0 0x22e19a1/0x22e19d0/P/-/-/0 0x22e195d/0x22e1990/P/-/-/0 0x22e18e9/0x22e1943/P/-/-/0 0x22e1a69/0x22e18c0/P/-/-/0 0x22e19f7/0x22e1a20/P/-/-/0 0x22e1910/0x22e19ee/P/-/-/0 0x22e19e2/0x22e190b/P/-/-/0 0x22e19a1/0x22e19d0/P/-/-/0
>
> Signed-off-by: Mark Santaniello <marksan@xxxxxx>
> ---
> tools/perf/builtin-script.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
> index 3d4c3b5..0c977b6 100644
> --- a/tools/perf/builtin-script.c
> +++ b/tools/perf/builtin-script.c
> @@ -586,7 +586,7 @@ static void print_sample_brstack(struct perf_sample *sample,
> thread__find_addr_map(thread, sample->cpumode, MAP__FUNCTION, to, &alt);
> }
>
> - printf("0x%"PRIx64, from);
> + printf(" 0x%"PRIx64, from);
> if (PRINT_FIELD(DSO)) {
> printf("(");
> map__fprintf_dsoname(alf.map, stdout);
> @@ -681,7 +681,7 @@ static void print_sample_brstackoff(struct perf_sample *sample,
> if (alt.map && !alt.map->dso->adjust_symbols)
> to = map__map_ip(alt.map, to);
>
> - printf("0x%"PRIx64, from);
> + printf(" 0x%"PRIx64, from);
> if (PRINT_FIELD(DSO)) {
> printf("(");
> map__fprintf_dsoname(alf.map, stdout);
> --
> 2.9.5