forked from Minki/linux
perf evsel: Rename *perf_evsel__get_config_term() & friends to evsel__env()
As it is a 'struct evsel' method, not part of tools/lib/perf/, aka libperf, to whom the perf_ prefix belongs. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
2dbfc94517
commit
35ac0cad7d
@ -216,7 +216,7 @@ static int cs_etm_set_sink_attr(struct perf_pmu *pmu,
|
||||
struct evsel *evsel)
|
||||
{
|
||||
char msg[BUFSIZ], path[PATH_MAX], *sink;
|
||||
struct perf_evsel_config_term *term;
|
||||
struct evsel_config_term *term;
|
||||
int ret = -EINVAL;
|
||||
u32 hash;
|
||||
|
||||
@ -224,7 +224,7 @@ static int cs_etm_set_sink_attr(struct perf_pmu *pmu,
|
||||
return 0;
|
||||
|
||||
list_for_each_entry(term, &evsel->config_terms, list) {
|
||||
if (term->type != PERF_EVSEL__CONFIG_TERM_DRV_CFG)
|
||||
if (term->type != EVSEL__CONFIG_TERM_DRV_CFG)
|
||||
continue;
|
||||
|
||||
sink = term->val.str;
|
||||
|
@ -556,10 +556,9 @@ static int intel_pt_validate_config(struct perf_pmu *intel_pt_pmu,
|
||||
static void intel_pt_config_sample_mode(struct perf_pmu *intel_pt_pmu,
|
||||
struct evsel *evsel)
|
||||
{
|
||||
struct perf_evsel_config_term *term;
|
||||
u64 user_bits = 0, bits;
|
||||
struct evsel_config_term *term = evsel__get_config_term(evsel, CFG_CHG);
|
||||
|
||||
term = perf_evsel__get_config_term(evsel, CFG_CHG);
|
||||
if (term)
|
||||
user_bits = term->val.cfg_chg;
|
||||
|
||||
|
@ -949,7 +949,7 @@ static int perf_top__overwrite_check(struct perf_top *top)
|
||||
{
|
||||
struct record_opts *opts = &top->record_opts;
|
||||
struct evlist *evlist = top->evlist;
|
||||
struct perf_evsel_config_term *term;
|
||||
struct evsel_config_term *term;
|
||||
struct list_head *config_terms;
|
||||
struct evsel *evsel;
|
||||
int set, overwrite = -1;
|
||||
@ -958,7 +958,7 @@ static int perf_top__overwrite_check(struct perf_top *top)
|
||||
set = -1;
|
||||
config_terms = &evsel->config_terms;
|
||||
list_for_each_entry(term, config_terms, list) {
|
||||
if (term->type == PERF_EVSEL__CONFIG_TERM_OVERWRITE)
|
||||
if (term->type == EVSEL__CONFIG_TERM_OVERWRITE)
|
||||
set = term->val.overwrite ? 1 : 0;
|
||||
}
|
||||
|
||||
|
@ -729,7 +729,7 @@ int auxtrace_parse_sample_options(struct auxtrace_record *itr,
|
||||
struct evlist *evlist,
|
||||
struct record_opts *opts, const char *str)
|
||||
{
|
||||
struct perf_evsel_config_term *term;
|
||||
struct evsel_config_term *term;
|
||||
struct evsel *aux_evsel;
|
||||
bool has_aux_sample_size = false;
|
||||
bool has_aux_leader = false;
|
||||
@ -771,7 +771,7 @@ no_opt:
|
||||
evlist__for_each_entry(evlist, evsel) {
|
||||
if (evsel__is_aux_event(evsel))
|
||||
aux_evsel = evsel;
|
||||
term = perf_evsel__get_config_term(evsel, AUX_SAMPLE_SIZE);
|
||||
term = evsel__get_config_term(evsel, AUX_SAMPLE_SIZE);
|
||||
if (term) {
|
||||
has_aux_sample_size = true;
|
||||
evsel->core.attr.aux_sample_size = term->val.aux_sample_size;
|
||||
|
@ -767,10 +767,10 @@ perf_evsel__reset_callgraph(struct evsel *evsel,
|
||||
}
|
||||
}
|
||||
|
||||
static void apply_config_terms(struct evsel *evsel,
|
||||
struct record_opts *opts, bool track)
|
||||
static void evsel__apply_config_terms(struct evsel *evsel,
|
||||
struct record_opts *opts, bool track)
|
||||
{
|
||||
struct perf_evsel_config_term *term;
|
||||
struct evsel_config_term *term;
|
||||
struct list_head *config_terms = &evsel->config_terms;
|
||||
struct perf_event_attr *attr = &evsel->core.attr;
|
||||
/* callgraph default */
|
||||
@ -783,30 +783,30 @@ static void apply_config_terms(struct evsel *evsel,
|
||||
|
||||
list_for_each_entry(term, config_terms, list) {
|
||||
switch (term->type) {
|
||||
case PERF_EVSEL__CONFIG_TERM_PERIOD:
|
||||
case EVSEL__CONFIG_TERM_PERIOD:
|
||||
if (!(term->weak && opts->user_interval != ULLONG_MAX)) {
|
||||
attr->sample_period = term->val.period;
|
||||
attr->freq = 0;
|
||||
evsel__reset_sample_bit(evsel, PERIOD);
|
||||
}
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_FREQ:
|
||||
case EVSEL__CONFIG_TERM_FREQ:
|
||||
if (!(term->weak && opts->user_freq != UINT_MAX)) {
|
||||
attr->sample_freq = term->val.freq;
|
||||
attr->freq = 1;
|
||||
evsel__set_sample_bit(evsel, PERIOD);
|
||||
}
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_TIME:
|
||||
case EVSEL__CONFIG_TERM_TIME:
|
||||
if (term->val.time)
|
||||
evsel__set_sample_bit(evsel, TIME);
|
||||
else
|
||||
evsel__reset_sample_bit(evsel, TIME);
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_CALLGRAPH:
|
||||
case EVSEL__CONFIG_TERM_CALLGRAPH:
|
||||
callgraph_buf = term->val.str;
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_BRANCH:
|
||||
case EVSEL__CONFIG_TERM_BRANCH:
|
||||
if (term->val.str && strcmp(term->val.str, "no")) {
|
||||
evsel__set_sample_bit(evsel, BRANCH_STACK);
|
||||
parse_branch_str(term->val.str,
|
||||
@ -814,16 +814,16 @@ static void apply_config_terms(struct evsel *evsel,
|
||||
} else
|
||||
evsel__reset_sample_bit(evsel, BRANCH_STACK);
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_STACK_USER:
|
||||
case EVSEL__CONFIG_TERM_STACK_USER:
|
||||
dump_size = term->val.stack_user;
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_MAX_STACK:
|
||||
case EVSEL__CONFIG_TERM_MAX_STACK:
|
||||
max_stack = term->val.max_stack;
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_MAX_EVENTS:
|
||||
case EVSEL__CONFIG_TERM_MAX_EVENTS:
|
||||
evsel->max_events = term->val.max_events;
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_INHERIT:
|
||||
case EVSEL__CONFIG_TERM_INHERIT:
|
||||
/*
|
||||
* attr->inherit should has already been set by
|
||||
* evsel__config. If user explicitly set
|
||||
@ -832,20 +832,20 @@ static void apply_config_terms(struct evsel *evsel,
|
||||
*/
|
||||
attr->inherit = term->val.inherit ? 1 : 0;
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_OVERWRITE:
|
||||
case EVSEL__CONFIG_TERM_OVERWRITE:
|
||||
attr->write_backward = term->val.overwrite ? 1 : 0;
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_DRV_CFG:
|
||||
case EVSEL__CONFIG_TERM_DRV_CFG:
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_PERCORE:
|
||||
case EVSEL__CONFIG_TERM_PERCORE:
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_AUX_OUTPUT:
|
||||
case EVSEL__CONFIG_TERM_AUX_OUTPUT:
|
||||
attr->aux_output = term->val.aux_output ? 1 : 0;
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE:
|
||||
case EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE:
|
||||
/* Already applied by auxtrace */
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_CFG_CHG:
|
||||
case EVSEL__CONFIG_TERM_CFG_CHG:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -906,10 +906,9 @@ static bool is_dummy_event(struct evsel *evsel)
|
||||
(evsel->core.attr.config == PERF_COUNT_SW_DUMMY);
|
||||
}
|
||||
|
||||
struct perf_evsel_config_term *__perf_evsel__get_config_term(struct evsel *evsel,
|
||||
enum evsel_term_type type)
|
||||
struct evsel_config_term *__evsel__get_config_term(struct evsel *evsel, enum evsel_term_type type)
|
||||
{
|
||||
struct perf_evsel_config_term *term, *found_term = NULL;
|
||||
struct evsel_config_term *term, *found_term = NULL;
|
||||
|
||||
list_for_each_entry(term, &evsel->config_terms, list) {
|
||||
if (term->type == type)
|
||||
@ -1144,7 +1143,7 @@ void evsel__config(struct evsel *evsel, struct record_opts *opts,
|
||||
* Apply event specific term settings,
|
||||
* it overloads any global configuration.
|
||||
*/
|
||||
apply_config_terms(evsel, opts, track);
|
||||
evsel__apply_config_terms(evsel, opts, track);
|
||||
|
||||
evsel->ignore_missing_thread = opts->ignore_missing_thread;
|
||||
|
||||
@ -1240,9 +1239,9 @@ int evsel__disable(struct evsel *evsel)
|
||||
return err;
|
||||
}
|
||||
|
||||
static void perf_evsel__free_config_terms(struct evsel *evsel)
|
||||
static void evsel__free_config_terms(struct evsel *evsel)
|
||||
{
|
||||
struct perf_evsel_config_term *term, *h;
|
||||
struct evsel_config_term *term, *h;
|
||||
|
||||
list_for_each_entry_safe(term, h, &evsel->config_terms, list) {
|
||||
list_del_init(&term->list);
|
||||
@ -1259,7 +1258,7 @@ void evsel__exit(struct evsel *evsel)
|
||||
perf_evsel__free_counts(evsel);
|
||||
perf_evsel__free_fd(&evsel->core);
|
||||
perf_evsel__free_id(&evsel->core);
|
||||
perf_evsel__free_config_terms(evsel);
|
||||
evsel__free_config_terms(evsel);
|
||||
cgroup__put(evsel->cgrp);
|
||||
perf_cpu_map__put(evsel->core.cpus);
|
||||
perf_cpu_map__put(evsel->core.own_cpus);
|
||||
|
@ -6,30 +6,30 @@
|
||||
#include <stdbool.h>
|
||||
|
||||
/*
|
||||
* The 'struct perf_evsel_config_term' is used to pass event
|
||||
* The 'struct evsel_config_term' is used to pass event
|
||||
* specific configuration data to evsel__config routine.
|
||||
* It is allocated within event parsing and attached to
|
||||
* perf_evsel::config_terms list head.
|
||||
* 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,
|
||||
PERF_EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE,
|
||||
PERF_EVSEL__CONFIG_TERM_CFG_CHG,
|
||||
EVSEL__CONFIG_TERM_PERIOD,
|
||||
EVSEL__CONFIG_TERM_FREQ,
|
||||
EVSEL__CONFIG_TERM_TIME,
|
||||
EVSEL__CONFIG_TERM_CALLGRAPH,
|
||||
EVSEL__CONFIG_TERM_STACK_USER,
|
||||
EVSEL__CONFIG_TERM_INHERIT,
|
||||
EVSEL__CONFIG_TERM_MAX_STACK,
|
||||
EVSEL__CONFIG_TERM_MAX_EVENTS,
|
||||
EVSEL__CONFIG_TERM_OVERWRITE,
|
||||
EVSEL__CONFIG_TERM_DRV_CFG,
|
||||
EVSEL__CONFIG_TERM_BRANCH,
|
||||
EVSEL__CONFIG_TERM_PERCORE,
|
||||
EVSEL__CONFIG_TERM_AUX_OUTPUT,
|
||||
EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE,
|
||||
EVSEL__CONFIG_TERM_CFG_CHG,
|
||||
};
|
||||
|
||||
struct perf_evsel_config_term {
|
||||
struct evsel_config_term {
|
||||
struct list_head list;
|
||||
enum evsel_term_type type;
|
||||
bool free_str;
|
||||
@ -53,10 +53,9 @@ struct perf_evsel_config_term {
|
||||
|
||||
struct evsel;
|
||||
|
||||
struct perf_evsel_config_term *__perf_evsel__get_config_term(struct evsel *evsel,
|
||||
enum evsel_term_type type);
|
||||
struct evsel_config_term *__evsel__get_config_term(struct evsel *evsel, enum evsel_term_type type);
|
||||
|
||||
#define perf_evsel__get_config_term(evsel, type) \
|
||||
__perf_evsel__get_config_term(evsel, PERF_EVSEL__CONFIG_TERM_ ## type)
|
||||
#define evsel__get_config_term(evsel, type) \
|
||||
__evsel__get_config_term(evsel, EVSEL__CONFIG_TERM_ ## type)
|
||||
|
||||
#endif // __PERF_EVSEL_CONFIG_H
|
||||
|
@ -1214,14 +1214,14 @@ static int get_config_terms(struct list_head *head_config,
|
||||
struct list_head *head_terms __maybe_unused)
|
||||
{
|
||||
#define ADD_CONFIG_TERM(__type, __weak) \
|
||||
struct perf_evsel_config_term *__t; \
|
||||
struct evsel_config_term *__t; \
|
||||
\
|
||||
__t = zalloc(sizeof(*__t)); \
|
||||
if (!__t) \
|
||||
return -ENOMEM; \
|
||||
\
|
||||
INIT_LIST_HEAD(&__t->list); \
|
||||
__t->type = PERF_EVSEL__CONFIG_TERM_ ## __type; \
|
||||
__t->type = EVSEL__CONFIG_TERM_ ## __type; \
|
||||
__t->weak = __weak; \
|
||||
list_add_tail(&__t->list, head_terms)
|
||||
|
||||
@ -1312,7 +1312,7 @@ do { \
|
||||
}
|
||||
|
||||
/*
|
||||
* Add PERF_EVSEL__CONFIG_TERM_CFG_CHG where cfg_chg will have a bit set for
|
||||
* Add EVSEL__CONFIG_TERM_CFG_CHG where cfg_chg will have a bit set for
|
||||
* each bit of attr->config that the user has changed.
|
||||
*/
|
||||
static int get_config_chgs(struct perf_pmu *pmu, struct list_head *head_config,
|
||||
@ -1400,10 +1400,10 @@ int parse_events_add_tool(struct parse_events_state *parse_state,
|
||||
|
||||
static bool config_term_percore(struct list_head *config_terms)
|
||||
{
|
||||
struct perf_evsel_config_term *term;
|
||||
struct evsel_config_term *term;
|
||||
|
||||
list_for_each_entry(term, config_terms, list) {
|
||||
if (term->type == PERF_EVSEL__CONFIG_TERM_PERCORE)
|
||||
if (term->type == EVSEL__CONFIG_TERM_PERCORE)
|
||||
return term->val.percore;
|
||||
}
|
||||
|
||||
@ -1478,7 +1478,7 @@ int parse_events_add_pmu(struct parse_events_state *parse_state,
|
||||
return -ENOMEM;
|
||||
|
||||
if (perf_pmu__config(pmu, &attr, head_config, parse_state->error)) {
|
||||
struct perf_evsel_config_term *pos, *tmp;
|
||||
struct evsel_config_term *pos, *tmp;
|
||||
|
||||
list_for_each_entry_safe(pos, tmp, &config_terms, list) {
|
||||
list_del_init(&pos->list);
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include "parse-events.h"
|
||||
#include "pmu-events/pmu-events.h"
|
||||
|
||||
struct perf_evsel_config_term;
|
||||
struct evsel_config_term;
|
||||
|
||||
enum {
|
||||
PERF_PMU_FORMAT_VALUE_CONFIG,
|
||||
|
Loading…
Reference in New Issue
Block a user