perf stat: Move 'interval_clear' to 'struct perf_stat_config'
Move the static 'interval_clear' variable to 'struct perf_stat_config', so it can be passed around and used outside the 'perf stat' command. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: David Ahern <dsahern@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20180830063252.23729-22-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
fa7070a386
commit
132c6ba3c4
|
@ -172,7 +172,6 @@ static struct cpu_map *aggr_map;
|
||||||
static aggr_get_id_t aggr_get_id;
|
static aggr_get_id_t aggr_get_id;
|
||||||
static bool append_file;
|
static bool append_file;
|
||||||
static bool interval_count;
|
static bool interval_count;
|
||||||
static bool interval_clear;
|
|
||||||
static const char *output_name;
|
static const char *output_name;
|
||||||
static int output_fd;
|
static int output_fd;
|
||||||
static int print_free_counters_hint;
|
static int print_free_counters_hint;
|
||||||
|
@ -1544,12 +1543,12 @@ static void print_interval(struct perf_stat_config *config,
|
||||||
FILE *output = config->output;
|
FILE *output = config->output;
|
||||||
static int num_print_interval;
|
static int num_print_interval;
|
||||||
|
|
||||||
if (interval_clear)
|
if (config->interval_clear)
|
||||||
puts(CONSOLE_CLEAR);
|
puts(CONSOLE_CLEAR);
|
||||||
|
|
||||||
sprintf(prefix, "%6lu.%09lu%s", ts->tv_sec, ts->tv_nsec, config->csv_sep);
|
sprintf(prefix, "%6lu.%09lu%s", ts->tv_sec, ts->tv_nsec, config->csv_sep);
|
||||||
|
|
||||||
if ((num_print_interval == 0 && !config->csv_output) || interval_clear) {
|
if ((num_print_interval == 0 && !config->csv_output) || config->interval_clear) {
|
||||||
switch (config->aggr_mode) {
|
switch (config->aggr_mode) {
|
||||||
case AGGR_SOCKET:
|
case AGGR_SOCKET:
|
||||||
fprintf(output, "# time socket cpus");
|
fprintf(output, "# time socket cpus");
|
||||||
|
@ -1581,7 +1580,7 @@ static void print_interval(struct perf_stat_config *config,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((num_print_interval == 0 || interval_clear) && metric_only)
|
if ((num_print_interval == 0 || config->interval_clear) && metric_only)
|
||||||
print_metric_headers(config, " ", true);
|
print_metric_headers(config, " ", true);
|
||||||
if (++num_print_interval == 25)
|
if (++num_print_interval == 25)
|
||||||
num_print_interval = 0;
|
num_print_interval = 0;
|
||||||
|
@ -1911,7 +1910,7 @@ static const struct option stat_options[] = {
|
||||||
"(overhead is possible for values <= 100ms)"),
|
"(overhead is possible for values <= 100ms)"),
|
||||||
OPT_INTEGER(0, "interval-count", &stat_config.times,
|
OPT_INTEGER(0, "interval-count", &stat_config.times,
|
||||||
"print counts for fixed number of times"),
|
"print counts for fixed number of times"),
|
||||||
OPT_BOOLEAN(0, "interval-clear", &interval_clear,
|
OPT_BOOLEAN(0, "interval-clear", &stat_config.interval_clear,
|
||||||
"clear screen in between new interval"),
|
"clear screen in between new interval"),
|
||||||
OPT_UINTEGER(0, "timeout", &stat_config.timeout,
|
OPT_UINTEGER(0, "timeout", &stat_config.timeout,
|
||||||
"stop workload and print counts after a timeout period in ms (>= 10ms)"),
|
"stop workload and print counts after a timeout period in ms (>= 10ms)"),
|
||||||
|
|
|
@ -92,6 +92,7 @@ struct perf_stat_config {
|
||||||
bool no_inherit;
|
bool no_inherit;
|
||||||
bool identifier;
|
bool identifier;
|
||||||
bool csv_output;
|
bool csv_output;
|
||||||
|
bool interval_clear;
|
||||||
FILE *output;
|
FILE *output;
|
||||||
unsigned int interval;
|
unsigned int interval;
|
||||||
unsigned int timeout;
|
unsigned int timeout;
|
||||||
|
|
Loading…
Reference in New Issue