diff options
author | Namhyung Kim <namhyung@kernel.org> | 2020-03-25 21:45:34 +0900 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2020-04-03 09:37:55 -0300 |
commit | 8fb4b67939e169fca68174e9ac7be79fe9a04498 (patch) | |
tree | db4f8888ee0082116f78f161f7e74ce0688a7438 /tools/perf/builtin-record.c | |
parent | ab64069f1a6604a43daec5fc4a4294b0b77a8b93 (diff) |
perf record: Add --all-cgroups option
The --all-cgroups option is to enable cgroup profiling support. It
tells kernel to record CGROUP events in the ring buffer so that perf
report can identify task/cgroup association later.
[root@seventh ~]# perf record --all-cgroups --namespaces /wb/cgtest
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.042 MB perf.data (558 samples) ]
[root@seventh ~]# perf report --stdio -s cgroup_id,cgroup,pid
# To display the perf.data header info, please use --header/--header-only options.
#
#
# Total Lost Samples: 0
#
# Samples: 558 of event 'cycles'
# Event count (approx.): 458017341
#
# Overhead cgroup id (dev/inode) Cgroup Pid:Command
# ........ ..................... .......... ...............
#
33.15% 4/0xeffffffb /sub 9615:looper0
32.83% 4/0xf00002f5 /sub/cgrp2 9620:looper2
32.79% 4/0xf00002f4 /sub/cgrp1 9619:looper1
0.35% 4/0xf00002f5 /sub/cgrp2 9618:cgtest
0.34% 4/0xf00002f4 /sub/cgrp1 9617:cgtest
0.32% 4/0xeffffffb / 9615:looper0
0.11% 4/0xeffffffb /sub 9617:cgtest
0.10% 4/0xeffffffb /sub 9618:cgtest
#
# (Tip: Sample related events with: perf record -e '{cycles,instructions}:S')
#
[root@seventh ~]#
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20200325124536.2800725-8-namhyung@kernel.org
Link: http://lore.kernel.org/lkml/20200402015249.3800462-1-namhyung@kernel.org
[ Extracted the HAVE_FILE_HANDLE from the followup patch ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-record.c')
-rw-r--r-- | tools/perf/builtin-record.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 2802de9538ff..1ab349abe904 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -1433,6 +1433,15 @@ static int __cmd_record(struct record *rec, int argc, const char **argv) if (rec->opts.record_namespaces) tool->namespace_events = true; + if (rec->opts.record_cgroup) { +#ifdef HAVE_FILE_HANDLE + tool->cgroup_events = true; +#else + pr_err("cgroup tracking is not supported\n"); + return -1; +#endif + } + if (rec->opts.auxtrace_snapshot_mode || rec->switch_output.enabled) { signal(SIGUSR2, snapshot_sig_handler); if (rec->opts.auxtrace_snapshot_mode) @@ -2363,6 +2372,8 @@ static struct option __record_options[] = { "per thread proc mmap processing timeout in ms"), OPT_BOOLEAN(0, "namespaces", &record.opts.record_namespaces, "Record namespaces events"), + OPT_BOOLEAN(0, "all-cgroups", &record.opts.record_cgroup, + "Record cgroup events"), OPT_BOOLEAN(0, "switch-events", &record.opts.record_switch_events, "Record context switch events"), OPT_BOOLEAN_FLAG(0, "all-kernel", &record.opts.all_kernel, |