Bugfix perf script -F ip,brstack (and brstackoff)
Subsystems (2)
PATCH 1/1 Bugfix perf script -F ip,brstack (and brstackoff)
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.
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/-/-/0After 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--- tools/perf/builtin-script.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
tools/perf/builtin-script.c +2 -2
@@ -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);
Signature · 1 line
2.9.5
Em Fri, Oct 06, 2017 at 01:07:22AM -0700, Mark Santaniello escreveu:
Quoted 5 lines
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+ <[email protected]>
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]$
Quoted 39 lines
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/-/-/0After 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/-/-/0Signed-off-by Mark Santaniello <[email protected]>--- tools/perf/builtin-script.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)tools/perf/builtin-script.c +2
-2@@ -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);Signature · 1 line
2.9.5
tip-bot for Mark Santaniello
merge bot[tip:perf/urgent] perf script: Add missing separator for "-F ip,brstack" (and brstackoff)
In reply to Mark Santanielloperf script: Add missing separator for "-F ip,brstack" (and brstackoff)
Commit-ID: e9516c0813aeb89ebd19ec0ed39fbfcd78b6ef3a Gitweb: https://git.kernel.org/tip/e9516c0813aeb89ebd19ec0ed39fbfcd78b6ef3a Author: Mark Santaniello <[email protected]> AuthorDate: Fri, 6 Oct 2017 01:07:22 -0700 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 6 Oct 2017 09:48:32 -0300
perf script: Add missing separator for "-F ip,brstack" (and brstackoff)
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.
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/-/-/0After 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--- tools/perf/builtin-script.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
tools/perf/builtin-script.c +2 -2
@@ -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);