perf script: print cgroup on the same line as comm
PATCH 1/1 perf script: print cgroup on the same line as comm
Commit 3fd7a168bf51 ("perf script: Add 'cgroup' field for output") added support for printing cgroup path in perf script output.
It was okay if you didn't want any stacks:
$ sudo perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup
jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service
jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.serviceWith stacks it gets messier as cgroup is printed after the stack:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym
jpegtran:23f4bf 3321915 [013] 404718.587488:
5c554 compress_output
570d9 jpeg_finish_compress
3476e jpegtran_main
330ee jpegtran::main
326e2 core::ops::function::FnOnce::call_once (inlined)
326e2 std::sys_common::backtrace::__rust_begin_short_backtrace
/idle.slice/polish.service
jpegtran:23f4bf 3321915 [031] 404718.592073:
8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING
55af68e62fff [unknown]
/idle.slice/polish.serviceLet's instead print cgroup on the same line as comm:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym
jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service
5c554 compress_output
570d9 jpeg_finish_compress
3476e jpegtran_main
330ee jpegtran::main
326e2 core::ops::function::FnOnce::call_once (inlined)
326e2 std::sys_common::backtrace::__rust_begin_short_backtrace jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.service
8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING
55af68e62fff [unknown]--- tools/perf/builtin-script.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
tools/perf/builtin-script.c +11 -11
@@ -2199,6 +2199,17 @@ static void process_event(struct perf_script *script,if (PRINT_FIELD (RETIRE_LAT ))fprintf (fp,"%16" PRIu16, sample->retire_lat); +if (PRINT_FIELD (CGROUP )) { +const char *cgrp_name; +struct cgroup *cgrp =cgroup__find (machine->env, + sample->cgroup); +if (cgrp !=NULL ) + cgrp_name = cgrp->name; +else + cgrp_name ="unknown" ; +fprintf (fp," %s" , cgrp_name); + } +if (PRINT_FIELD (IP )) {struct callchain_cursor *cursor =NULL ;
@@ -2243,17 +2254,6 @@ static void process_event(struct perf_script *script,if (PRINT_FIELD (CODE_PAGE_SIZE ))fprintf (fp," %s" ,get_page_size_name (sample->code_page_size, str)); -if (PRINT_FIELD (CGROUP )) { -const char *cgrp_name; -struct cgroup *cgrp =cgroup__find (machine->env, - sample->cgroup); -if (cgrp !=NULL ) - cgrp_name = cgrp->name; -else - cgrp_name ="unknown" ; -fprintf (fp," %s" , cgrp_name); - } -perf_sample__fprintf_ipc (sample, attr, fp);fprintf (fp,"\n" );
Signature · 1 line
2.41.0
Quoted 88 lines · Ivan Babrou
Commit
3fd7a168bf51("perf script: Add 'cgroup' field for output") added support for printing cgroup path in perf script output.It was okay if you didn't want any stacks:
$ sudo perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.serviceWith stacks it gets messier as cgroup is printed after the stack:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtrace /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown] /idle.slice/polish.serviceLet's instead print cgroup on the same line as comm:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtracejpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.service 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown]Signed-off-by Ivan Babrou <[email protected]>Fixes 3fd7a168bf51 ("perf script: Add 'cgroup' field for output")--- tools/perf/builtin-script.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)tools/perf/builtin-script.c +11
-12@@ -2199,6 +2199,17 @@ static void process_event(struct perf_script *script,if (PRINT_FIELD (RETIRE_LAT ))fprintf (fp,"%16" PRIu16, sample->retire_lat); +if (PRINT_FIELD (CGROUP )) { +const char *cgrp_name; +struct cgroup *cgrp =cgroup__find (machine->env, + sample->cgroup); +if (cgrp !=NULL ) + cgrp_name = cgrp->name; +else + cgrp_name ="unknown" ; +fprintf (fp," %s" , cgrp_name); + } +if (PRINT_FIELD (IP )) {struct callchain_cursor *cursor =NULL ;@@ -2243,17 +2254,6 @@ static void process_event(struct perf_script *script,if (PRINT_FIELD (CODE_PAGE_SIZE ))fprintf (fp," %s" ,get_page_size_name (sample->code_page_size, str)); -if (PRINT_FIELD (CGROUP )) { -const char *cgrp_name; -struct cgroup *cgrp =cgroup__find (machine->env, - sample->cgroup); -if (cgrp !=NULL ) - cgrp_name = cgrp->name; -else - cgrp_name ="unknown" ; -fprintf (fp," %s" , cgrp_name); - } -perf_sample__fprintf_ipc (sample, attr, fp);fprintf (fp,"\n" ); --
Quoted 2 lines
2.41.0
A friendly bump in case this slipped through the cracks.
Ian Rogers
reviewerQuoted 39 lines · Ivan Babrou
Quoted 37 lines · Ivan Babrou
Commit
3fd7a168bf51("perf script: Add 'cgroup' field for output") added support for printing cgroup path in perf script output.It was okay if you didn't want any stacks:
$ sudo perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.serviceWith stacks it gets messier as cgroup is printed after the stack:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtrace /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown] /idle.slice/polish.serviceLet's instead print cgroup on the same line as comm:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtrace
Quoted 6 lines
Quoted 6 lines
jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.service 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown]Signed-off-by Ivan Babrou <[email protected]>Fixes 3fd7a168bf51 ("perf script: Add 'cgroup' field for output")
This change makes sense to me. Namhyung, wdyt?
Thanks,
Ian
Quoted 49 lines
Quoted 45 lines
--- tools/perf/builtin-script.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)tools/perf/builtin-script.c +11
-12@@ -2199,6 +2199,17 @@ static void process_event(struct perf_script *script,if (PRINT_FIELD (RETIRE_LAT ))fprintf (fp,"%16" PRIu16, sample->retire_lat); +if (PRINT_FIELD (CGROUP )) { +const char *cgrp_name; +struct cgroup *cgrp =cgroup__find (machine->env, + sample->cgroup); +if (cgrp !=NULL ) + cgrp_name = cgrp->name; +else + cgrp_name ="unknown" ; +fprintf (fp," %s" , cgrp_name); + } +if (PRINT_FIELD (IP )) {struct callchain_cursor *cursor =NULL ;@@ -2243,17 +2254,6 @@ static void process_event(struct perf_script *script,if (PRINT_FIELD (CODE_PAGE_SIZE ))fprintf (fp," %s" ,get_page_size_name (sample->code_page_size, str)); -if (PRINT_FIELD (CGROUP )) { -const char *cgrp_name; -struct cgroup *cgrp =cgroup__find (machine->env, - sample->cgroup); -if (cgrp !=NULL ) - cgrp_name = cgrp->name; -else - cgrp_name ="unknown" ; -fprintf (fp," %s" , cgrp_name); - } -perf_sample__fprintf_ipc (sample, attr, fp);fprintf (fp,"\n" ); --Quoted 2 lines
2.41.0
A friendly bump in case this slipped through the cracks.
Quoted 45 lines · Ian Rogers
Quoted 43 lines · Ivan Babrou
Quoted 41 lines · Ivan Babrou
Commit
3fd7a168bf51("perf script: Add 'cgroup' field for output") added support for printing cgroup path in perf script output.It was okay if you didn't want any stacks:
$ sudo perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.serviceWith stacks it gets messier as cgroup is printed after the stack:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtrace /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown] /idle.slice/polish.serviceLet's instead print cgroup on the same line as comm:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtracejpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.service 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown]
Quoted 7 lines
Quoted 2 lines
Quoted 2 lines
Signed-off-by Ivan Babrou <[email protected]>Fixes 3fd7a168bf51 ("perf script: Add 'cgroup' field for output")This change makes sense to me. Namhyung, wdyt?
Thanks,
Ian
Hi Namhyung,
This is a really trivial patch and it would be good to get a word from you.
Thanks.
Quoted 49 lines
Quoted 49 lines
Quoted 45 lines
--- tools/perf/builtin-script.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)tools/perf/builtin-script.c +11
-12@@ -2199,6 +2199,17 @@ static void process_event(struct perf_script *script,if (PRINT_FIELD (RETIRE_LAT ))fprintf (fp,"%16" PRIu16, sample->retire_lat); +if (PRINT_FIELD (CGROUP )) { +const char *cgrp_name; +struct cgroup *cgrp =cgroup__find (machine->env, + sample->cgroup); +if (cgrp !=NULL ) + cgrp_name = cgrp->name; +else + cgrp_name ="unknown" ; +fprintf (fp," %s" , cgrp_name); + } +if (PRINT_FIELD (IP )) {struct callchain_cursor *cursor =NULL ;@@ -2243,17 +2254,6 @@ static void process_event(struct perf_script *script,if (PRINT_FIELD (CODE_PAGE_SIZE ))fprintf (fp," %s" ,get_page_size_name (sample->code_page_size, str)); -if (PRINT_FIELD (CGROUP )) { -const char *cgrp_name; -struct cgroup *cgrp =cgroup__find (machine->env, - sample->cgroup); -if (cgrp !=NULL ) - cgrp_name = cgrp->name; -else - cgrp_name ="unknown" ; -fprintf (fp," %s" , cgrp_name); - } -perf_sample__fprintf_ipc (sample, attr, fp);fprintf (fp,"\n" ); --Quoted 2 lines
2.41.0
A friendly bump in case this slipped through the cracks.
Arnaldo Carvalho de Melo
maintainerEm Mon, Aug 07, 2023 at 11:02:01AM -0700, Ivan Babrou escreveu:
Quoted 43 lines · Ian Rogers
Quoted 42 lines · Ivan Babrou
Quoted 41 lines · Ivan Babrou
Quoted 40 lines
Commit
3fd7a168bf51("perf script: Add 'cgroup' field for output") added support for printing cgroup path in perf script output.It was okay if you didn't want any stacks:
$ sudo perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.serviceWith stacks it gets messier as cgroup is printed after the stack:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtrace /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown] /idle.slice/polish.serviceLet's instead print cgroup on the same line as comm:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtracejpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.service 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown]
Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
Quoted 2 lines
Signed-off-by Ivan Babrou <[email protected]>Fixes 3fd7a168bf51 ("perf script: Add 'cgroup' field for output")This change makes sense to me. Namhyung, wdyt?
Hi Namhyung,
This is a really trivial patch and it would be good to get a word from you.
Hi, this solves the case for cgroup and I think it should be merged, but what about the other fields that are being printed after the callchain gets printed?
I looked and we would have to introduce a __sample__fprintf_sym that didn't call sample__fprintf_callchain and use it in perf script's process_event() then later call sample__fprintf_callchain after all the fields that print on the same line.
Anyway, Namhyung, can I have your Acked-by for this patch to move things forward at least for cgroups?
- Arnaldo
Arnaldo Carvalho de Melo
maintainerEm Tue, Aug 08, 2023 at 10:44:26AM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 53 lines
Em Mon, Aug 07, 2023 at 11:02:01AM -0700, Ivan Babrou escreveu:
Quoted 43 lines · Ian Rogers
Quoted 42 lines · Ivan Babrou
Quoted 41 lines · Ivan Babrou
Quoted 40 lines
Commit
3fd7a168bf51("perf script: Add 'cgroup' field for output") added support for printing cgroup path in perf script output.It was okay if you didn't want any stacks:
$ sudo perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.serviceWith stacks it gets messier as cgroup is printed after the stack:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtrace /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown] /idle.slice/polish.serviceLet's instead print cgroup on the same line as comm:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtracejpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.service 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown]Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
Quoted 2 lines
Signed-off-by Ivan Babrou <[email protected]>Fixes 3fd7a168bf51 ("perf script: Add 'cgroup' field for output")This change makes sense to me. Namhyung, wdyt?
Hi Namhyung,
This is a really trivial patch and it would be good to get a word from you.
Quoted 8 lines
Hi, this solves the case for cgroup and I think it should be merged, but what about the other fields that are being printed after the callchain gets printed?
I looked and we would have to introduce a
__sample__fprintf_symthat didn't callsample__fprintf_callchainand use it in perf script'sprocess_event()then later callsample__fprintf_callchainafter all the fields that print on the same line.
Nah, or simply moving sample__fprintf_sym() to the end of that function.
- Arnaldo
Quoted 2 lines
Anyway, Namhyung, can I have your Acked-by for this patch to move things forward at least for cgroups?
Hello,
Sorry for the late reply.
Quoted 58 lines · Arnaldo Carvalho de Melo
Em Mon, Aug 07, 2023 at 11:02:01AM -0700, Ivan Babrou escreveu:
Quoted 43 lines · Ian Rogers
Quoted 42 lines · Ivan Babrou
Quoted 41 lines · Ivan Babrou
Quoted 40 lines
Commit
3fd7a168bf51("perf script: Add 'cgroup' field for output") added support for printing cgroup path in perf script output.It was okay if you didn't want any stacks:
$ sudo perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.serviceWith stacks it gets messier as cgroup is printed after the stack:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtrace /idle.slice/polish.service jpegtran:23f4bf 3321915 [031] 404718.592073: 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown] /idle.slice/polish.serviceLet's instead print cgroup on the same line as comm:
$ perf script --comms jpegtran:23f4bf -F comm,tid,cpu,time,cgroup,ip,sym jpegtran:23f4bf 3321915 [013] 404718.587488: /idle.slice/polish.service 5c554 compress_output 570d9 jpeg_finish_compress 3476e jpegtran_main 330ee jpegtran::main 326e2 core::ops::function::FnOnce::call_once (inlined) 326e2 std::sys_common::backtrace::__rust_begin_short_backtracejpegtran:23f4bf 3321915 [031] 404718.592073: /idle.slice/polish.service 8474d jsimd_encode_mcu_AC_first_prepare_sse2.PADDING 55af68e62fff [unknown]Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
Quoted 2 lines
Signed-off-by Ivan Babrou <[email protected]>Fixes 3fd7a168bf51 ("perf script: Add 'cgroup' field for output")This change makes sense to me. Namhyung, wdyt?
Hi Namhyung,
This is a really trivial patch and it would be good to get a word from you.
Hi, this solves the case for cgroup and I think it should be merged, but what about the other fields that are being printed after the callchain gets printed?
Quoted 7 lines
I looked and we would have to introduce a
__sample__fprintf_symthat didn't callsample__fprintf_callchainand use it in perf script'sprocess_event()then later callsample__fprintf_callchainafter all the fields that print on the same line.Anyway, Namhyung, can I have your Acked-by for this patch to move things forward at least for cgroups?
I'm ok with the change itself. But I'm afraid other fields might be changed too. Anyway,
Thanks,
Namhyung