diff options
Diffstat (limited to 'tools/perf/builtin-script.c')
| -rw-r--r-- | tools/perf/builtin-script.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index d931c971a100..9b16df881af8 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -400,10 +400,20 @@ static inline int output_type(unsigned int type) static inline int evsel__output_type(struct evsel *evsel) { - if (evsel->script_output_type == OUTPUT_TYPE_UNSET) - evsel->script_output_type = output_type(evsel->core.attr.type); + int type = evsel->script_output_type; - return evsel->script_output_type; + if (type == OUTPUT_TYPE_UNSET) { + type = output_type(evsel->core.attr.type); + if (type == OUTPUT_TYPE_OTHER) { + struct perf_pmu *pmu = evsel__find_pmu(evsel); + + if (pmu && pmu->is_core) + type = PERF_TYPE_RAW; + } + evsel->script_output_type = type; + } + + return type; } static bool output_set_by_user(void) |
