Commit 43bece79 authored by Lin Ming's avatar Lin Ming Committed by Arnaldo Carvalho de Melo

perf tools: Add group event scheduling option to perf record/stat

Group event scheduling command line option is missing in perf
record/stat.

Add it to perf record/stat, which is same as in perf top.
Reported-by: default avatarAndi Kleen <andi@firstfloor.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1313577727.2754.5.camel@hp6530sSigned-off-by: default avatarLin Ming <ming.m.lin@intel.com>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent d53e8365
...@@ -45,7 +45,7 @@ static int freq = 1000; ...@@ -45,7 +45,7 @@ static int freq = 1000;
static int output; static int output;
static int pipe_output = 0; static int pipe_output = 0;
static const char *output_name = NULL; static const char *output_name = NULL;
static int group = 0; static bool group = false;
static int realtime_prio = 0; static int realtime_prio = 0;
static bool nodelay = false; static bool nodelay = false;
static bool raw_samples = false; static bool raw_samples = false;
...@@ -753,6 +753,8 @@ const struct option record_options[] = { ...@@ -753,6 +753,8 @@ const struct option record_options[] = {
"child tasks do not inherit counters"), "child tasks do not inherit counters"),
OPT_UINTEGER('F', "freq", &user_freq, "profile at this frequency"), OPT_UINTEGER('F', "freq", &user_freq, "profile at this frequency"),
OPT_UINTEGER('m', "mmap-pages", &mmap_pages, "number of mmap data pages"), OPT_UINTEGER('m', "mmap-pages", &mmap_pages, "number of mmap data pages"),
OPT_BOOLEAN(0, "group", &group,
"put the counters into a counter group"),
OPT_BOOLEAN('g', "call-graph", &call_graph, OPT_BOOLEAN('g', "call-graph", &call_graph,
"do call-graph (stack chain/backtrace) recording"), "do call-graph (stack chain/backtrace) recording"),
OPT_INCR('v', "verbose", &verbose, OPT_INCR('v', "verbose", &verbose,
......
...@@ -193,6 +193,7 @@ static int big_num_opt = -1; ...@@ -193,6 +193,7 @@ static int big_num_opt = -1;
static const char *cpu_list; static const char *cpu_list;
static const char *csv_sep = NULL; static const char *csv_sep = NULL;
static bool csv_output = false; static bool csv_output = false;
static bool group = false;
static volatile int done = 0; static volatile int done = 0;
...@@ -280,14 +281,14 @@ static int create_perf_stat_counter(struct perf_evsel *evsel) ...@@ -280,14 +281,14 @@ static int create_perf_stat_counter(struct perf_evsel *evsel)
attr->inherit = !no_inherit; attr->inherit = !no_inherit;
if (system_wide) if (system_wide)
return perf_evsel__open_per_cpu(evsel, evsel_list->cpus, false); return perf_evsel__open_per_cpu(evsel, evsel_list->cpus, group);
if (target_pid == -1 && target_tid == -1) { if (target_pid == -1 && target_tid == -1) {
attr->disabled = 1; attr->disabled = 1;
attr->enable_on_exec = 1; attr->enable_on_exec = 1;
} }
return perf_evsel__open_per_thread(evsel, evsel_list->threads, false); return perf_evsel__open_per_thread(evsel, evsel_list->threads, group);
} }
/* /*
...@@ -1043,6 +1044,8 @@ static const struct option options[] = { ...@@ -1043,6 +1044,8 @@ static const struct option options[] = {
"stat events on existing thread id"), "stat events on existing thread id"),
OPT_BOOLEAN('a', "all-cpus", &system_wide, OPT_BOOLEAN('a', "all-cpus", &system_wide,
"system-wide collection from all CPUs"), "system-wide collection from all CPUs"),
OPT_BOOLEAN('g', "group", &group,
"put the counters into a counter group"),
OPT_BOOLEAN('c', "scale", &scale, OPT_BOOLEAN('c', "scale", &scale,
"scale/normalize counters"), "scale/normalize counters"),
OPT_INCR('v', "verbose", &verbose, OPT_INCR('v', "verbose", &verbose,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment