perf evsel: Move config terms to a separate header

Further reducing the size of util/evsel.h.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-20zr7di9eynm0272mtjfdhfc@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2019-09-24 15:56:14 -03:00
parent bd70462062
commit 95be9d197d
6 changed files with 54 additions and 43 deletions

View File

@ -23,6 +23,7 @@
#include "../../util/event.h" #include "../../util/event.h"
#include "../../util/evlist.h" #include "../../util/evlist.h"
#include "../../util/evsel.h" #include "../../util/evsel.h"
#include "../../util/evsel_config.h"
#include "../../util/pmu.h" #include "../../util/pmu.h"
#include "../../util/cs-etm.h" #include "../../util/cs-etm.h"
#include <internal/lib.h> // page_size #include <internal/lib.h> // page_size

View File

@ -27,6 +27,7 @@
#include "util/dso.h" #include "util/dso.h"
#include "util/evlist.h" #include "util/evlist.h"
#include "util/evsel.h" #include "util/evsel.h"
#include "util/evsel_config.h"
#include "util/event.h" #include "util/event.h"
#include "util/machine.h" #include "util/machine.h"
#include "util/map.h" #include "util/map.h"

View File

@ -30,6 +30,7 @@
#include "counts.h" #include "counts.h"
#include "event.h" #include "event.h"
#include "evsel.h" #include "evsel.h"
#include "util/evsel_config.h"
#include "util/evsel_fprintf.h" #include "util/evsel_fprintf.h"
#include "evlist.h" #include "evlist.h"
#include <perf/cpumap.h> #include <perf/cpumap.h>

View File

@ -12,49 +12,6 @@
#include "symbol_conf.h" #include "symbol_conf.h"
#include <internal/cpumap.h> #include <internal/cpumap.h>
/*
* The 'struct perf_evsel_config_term' is used to pass event
* specific configuration data to perf_evsel__config routine.
* It is allocated within event parsing and attached to
* perf_evsel::config_terms list head.
*/
enum term_type {
PERF_EVSEL__CONFIG_TERM_PERIOD,
PERF_EVSEL__CONFIG_TERM_FREQ,
PERF_EVSEL__CONFIG_TERM_TIME,
PERF_EVSEL__CONFIG_TERM_CALLGRAPH,
PERF_EVSEL__CONFIG_TERM_STACK_USER,
PERF_EVSEL__CONFIG_TERM_INHERIT,
PERF_EVSEL__CONFIG_TERM_MAX_STACK,
PERF_EVSEL__CONFIG_TERM_MAX_EVENTS,
PERF_EVSEL__CONFIG_TERM_OVERWRITE,
PERF_EVSEL__CONFIG_TERM_DRV_CFG,
PERF_EVSEL__CONFIG_TERM_BRANCH,
PERF_EVSEL__CONFIG_TERM_PERCORE,
PERF_EVSEL__CONFIG_TERM_AUX_OUTPUT,
};
struct perf_evsel_config_term {
struct list_head list;
enum term_type type;
union {
u64 period;
u64 freq;
bool time;
char *callgraph;
char *drv_cfg;
u64 stack_user;
int max_stack;
bool inherit;
bool overwrite;
char *branch;
unsigned long max_events;
bool percore;
bool aux_output;
} val;
bool weak;
};
struct bpf_object; struct bpf_object;
struct cgroup; struct cgroup;
struct perf_counts; struct perf_counts;

View File

@ -0,0 +1,50 @@
// SPDX-License-Identifier: GPL-2.0
#ifndef __PERF_EVSEL_CONFIG_H
#define __PERF_EVSEL_CONFIG_H 1
#include <linux/types.h>
#include <stdbool.h>
/*
* The 'struct perf_evsel_config_term' is used to pass event
* specific configuration data to perf_evsel__config routine.
* It is allocated within event parsing and attached to
* perf_evsel::config_terms list head.
*/
enum evsel_term_type {
PERF_EVSEL__CONFIG_TERM_PERIOD,
PERF_EVSEL__CONFIG_TERM_FREQ,
PERF_EVSEL__CONFIG_TERM_TIME,
PERF_EVSEL__CONFIG_TERM_CALLGRAPH,
PERF_EVSEL__CONFIG_TERM_STACK_USER,
PERF_EVSEL__CONFIG_TERM_INHERIT,
PERF_EVSEL__CONFIG_TERM_MAX_STACK,
PERF_EVSEL__CONFIG_TERM_MAX_EVENTS,
PERF_EVSEL__CONFIG_TERM_OVERWRITE,
PERF_EVSEL__CONFIG_TERM_DRV_CFG,
PERF_EVSEL__CONFIG_TERM_BRANCH,
PERF_EVSEL__CONFIG_TERM_PERCORE,
PERF_EVSEL__CONFIG_TERM_AUX_OUTPUT,
};
struct perf_evsel_config_term {
struct list_head list;
enum evsel_term_type type;
union {
u64 period;
u64 freq;
bool time;
char *callgraph;
char *drv_cfg;
u64 stack_user;
int max_stack;
bool inherit;
bool overwrite;
char *branch;
unsigned long max_events;
bool percore;
bool aux_output;
} val;
bool weak;
};
#endif // __PERF_EVSEL_CONFIG_H

View File

@ -34,6 +34,7 @@
#include "asm/bug.h" #include "asm/bug.h"
#include "util/parse-branch-options.h" #include "util/parse-branch-options.h"
#include "metricgroup.h" #include "metricgroup.h"
#include "util/evsel_config.h"
#include "util/mmap.h" #include "util/mmap.h"
#define MAX_NAME_LEN 100 #define MAX_NAME_LEN 100