mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
perf tools: Add aux-action config term
Add a new common config term "aux-action" to use for configuring AUX area trace pause / resume. The value is a string that will be parsed in a subsequent patch. Reviewed-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Acked-by: Ian Rogers <irogers@google.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Leo Yan <leo.yan@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lore.kernel.org/r/20241216070244.14450-3-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
f3e7194756
commit
314bf84e03
|
|
@ -1151,6 +1151,8 @@ static void evsel__apply_config_terms(struct evsel *evsel,
|
|||
case EVSEL__CONFIG_TERM_AUX_OUTPUT:
|
||||
attr->aux_output = term->val.aux_output ? 1 : 0;
|
||||
break;
|
||||
case EVSEL__CONFIG_TERM_AUX_ACTION:
|
||||
break;
|
||||
case EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE:
|
||||
/* Already applied by auxtrace */
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ enum evsel_term_type {
|
|||
EVSEL__CONFIG_TERM_BRANCH,
|
||||
EVSEL__CONFIG_TERM_PERCORE,
|
||||
EVSEL__CONFIG_TERM_AUX_OUTPUT,
|
||||
EVSEL__CONFIG_TERM_AUX_ACTION,
|
||||
EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE,
|
||||
EVSEL__CONFIG_TERM_CFG_CHG,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -793,6 +793,7 @@ const char *parse_events__term_type_str(enum parse_events__term_type term_type)
|
|||
[PARSE_EVENTS__TERM_TYPE_DRV_CFG] = "driver-config",
|
||||
[PARSE_EVENTS__TERM_TYPE_PERCORE] = "percore",
|
||||
[PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT] = "aux-output",
|
||||
[PARSE_EVENTS__TERM_TYPE_AUX_ACTION] = "aux-action",
|
||||
[PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE] = "aux-sample-size",
|
||||
[PARSE_EVENTS__TERM_TYPE_METRIC_ID] = "metric-id",
|
||||
[PARSE_EVENTS__TERM_TYPE_RAW] = "raw",
|
||||
|
|
@ -842,6 +843,7 @@ config_term_avail(enum parse_events__term_type term_type, struct parse_events_er
|
|||
case PARSE_EVENTS__TERM_TYPE_OVERWRITE:
|
||||
case PARSE_EVENTS__TERM_TYPE_DRV_CFG:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_ACTION:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE:
|
||||
case PARSE_EVENTS__TERM_TYPE_RAW:
|
||||
case PARSE_EVENTS__TERM_TYPE_LEGACY_CACHE:
|
||||
|
|
@ -961,6 +963,9 @@ do { \
|
|||
case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT:
|
||||
CHECK_TYPE_VAL(NUM);
|
||||
break;
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_ACTION:
|
||||
CHECK_TYPE_VAL(STR);
|
||||
break;
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE:
|
||||
CHECK_TYPE_VAL(NUM);
|
||||
if (term->val.num > UINT_MAX) {
|
||||
|
|
@ -1078,6 +1083,7 @@ static int config_term_tracepoint(struct perf_event_attr *attr,
|
|||
case PARSE_EVENTS__TERM_TYPE_OVERWRITE:
|
||||
case PARSE_EVENTS__TERM_TYPE_NOOVERWRITE:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_ACTION:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE:
|
||||
return config_term_common(attr, term, err);
|
||||
case PARSE_EVENTS__TERM_TYPE_USER:
|
||||
|
|
@ -1213,6 +1219,9 @@ do { \
|
|||
ADD_CONFIG_TERM_VAL(AUX_OUTPUT, aux_output,
|
||||
term->val.num ? 1 : 0, term->weak);
|
||||
break;
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_ACTION:
|
||||
ADD_CONFIG_TERM_STR(AUX_ACTION, term->val.str, term->weak);
|
||||
break;
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE:
|
||||
ADD_CONFIG_TERM_VAL(AUX_SAMPLE_SIZE, aux_sample_size,
|
||||
term->val.num, term->weak);
|
||||
|
|
@ -1275,6 +1284,7 @@ static int get_config_chgs(struct perf_pmu *pmu, struct parse_events_terms *head
|
|||
case PARSE_EVENTS__TERM_TYPE_DRV_CFG:
|
||||
case PARSE_EVENTS__TERM_TYPE_PERCORE:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_ACTION:
|
||||
case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE:
|
||||
case PARSE_EVENTS__TERM_TYPE_METRIC_ID:
|
||||
case PARSE_EVENTS__TERM_TYPE_RAW:
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ enum parse_events__term_type {
|
|||
PARSE_EVENTS__TERM_TYPE_DRV_CFG,
|
||||
PARSE_EVENTS__TERM_TYPE_PERCORE,
|
||||
PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT,
|
||||
PARSE_EVENTS__TERM_TYPE_AUX_ACTION,
|
||||
PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE,
|
||||
PARSE_EVENTS__TERM_TYPE_METRIC_ID,
|
||||
PARSE_EVENTS__TERM_TYPE_RAW,
|
||||
|
|
|
|||
|
|
@ -321,6 +321,7 @@ overwrite { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_OVERWRITE); }
|
|||
no-overwrite { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_NOOVERWRITE); }
|
||||
percore { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_PERCORE); }
|
||||
aux-output { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT); }
|
||||
aux-action { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_AUX_ACTION); }
|
||||
aux-sample-size { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE); }
|
||||
metric-id { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_METRIC_ID); }
|
||||
cpu-cycles|cycles { return hw_term(yyscanner, PERF_COUNT_HW_CPU_CYCLES); }
|
||||
|
|
|
|||
|
|
@ -1773,6 +1773,7 @@ int perf_pmu__for_each_format(struct perf_pmu *pmu, void *state, pmu_format_call
|
|||
"no-overwrite",
|
||||
"percore",
|
||||
"aux-output",
|
||||
"aux-action=(pause|resume|start-paused)",
|
||||
"aux-sample-size=number",
|
||||
};
|
||||
struct perf_pmu_format *format;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user