Adding --sample-cpu option to be able to explicitly enable
CPU sample type. Currently it's only enable implicitly
in case the target is cpu related.

It will be useful for following c2c record tool.

Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Jiri Olsa <[email protected]>
---
 tools/perf/Documentation/perf-record.txt | 3 +++
 tools/perf/builtin-record.c              | 1 +
 tools/perf/perf.h                        | 1 +
 tools/perf/util/evsel.c                  | 2 +-
 4 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/perf/Documentation/perf-record.txt 
b/tools/perf/Documentation/perf-record.txt
index 69966abf65d1..379a2bed07c0 100644
--- a/tools/perf/Documentation/perf-record.txt
+++ b/tools/perf/Documentation/perf-record.txt
@@ -192,6 +192,9 @@ OPTIONS
 --period::
        Record the sample period.
 
+--sample-cpu::
+       Record the sample cpu.
+
 -n::
 --no-samples::
        Don't sample.
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 8f2c16d9275f..6355902fbfc8 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -1434,6 +1434,7 @@ struct option __record_options[] = {
        OPT_BOOLEAN('s', "stat", &record.opts.inherit_stat,
                    "per thread counts"),
        OPT_BOOLEAN('d', "data", &record.opts.sample_address, "Record the 
sample addresses"),
+       OPT_BOOLEAN(0, "sample-cpu", &record.opts.sample_cpu, "Record the 
sample cpu"),
        OPT_BOOLEAN_SET('T', "timestamp", &record.opts.sample_time,
                        &record.opts.sample_time_set,
                        "Record the sample timestamps"),
diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index a7e0f1497244..cb0f1356ff81 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -52,6 +52,7 @@ struct record_opts {
        bool         sample_weight;
        bool         sample_time;
        bool         sample_time_set;
+       bool         sample_cpu;
        bool         period;
        bool         running_time;
        bool         full_auxtrace;
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 8c54df61fe64..e7bc833e21aa 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -854,7 +854,7 @@ void perf_evsel__config(struct perf_evsel *evsel, struct 
record_opts *opts,
                perf_evsel__set_sample_bit(evsel, REGS_INTR);
        }
 
-       if (target__has_cpu(&opts->target))
+       if (target__has_cpu(&opts->target) || opts->sample_cpu)
                perf_evsel__set_sample_bit(evsel, CPU);
 
        if (opts->period)
-- 
2.4.11

Reply via email to