From: Greg Kroah-Hartman Date: Tue, 4 Oct 2022 17:42:29 +0000 (+0200) Subject: delete some broken perf patches from 5.15 queue X-Git-Tag: v4.19.261~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d2c0ce9304ff30d09ffe3d272f604256b9ad31d9;p=thirdparty%2Fkernel%2Fstable-queue.git delete some broken perf patches from 5.15 queue --- diff --git a/queue-5.15/perf-evsel-add-tool-event-helpers.patch b/queue-5.15/perf-evsel-add-tool-event-helpers.patch deleted file mode 100644 index 94395f79a02..00000000000 --- a/queue-5.15/perf-evsel-add-tool-event-helpers.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 79932d161fda7f2d18761ace5f25445f7b525741 Mon Sep 17 00:00:00 2001 -From: Ian Rogers -Date: Fri, 6 May 2022 22:34:08 -0700 -Subject: perf evsel: Add tool event helpers - -From: Ian Rogers - -commit 79932d161fda7f2d18761ace5f25445f7b525741 upstream. - -Convert to and from a string. Fix evsel__tool_name() as array is -off-by-1. Support more than just duration_time as a metric-id. - -Fixes: 75eafc970bd9d36d ("perf list: Print all available tool events") -Signed-off-by: Ian Rogers -Cc: Adrian Hunter -Cc: Alexander Shishkin -Cc: Andi Kleen -Cc: Florian Fischer -Cc: Ingo Molnar -Cc: James Clark -Cc: Jiri Olsa -Cc: John Garry -Cc: Kim Phillips -Cc: Madhavan Srinivasan -Cc: Mark Rutland -Cc: Namhyung Kim -Cc: Peter Zijlstra -Cc: Riccardo Mancini -Cc: Shunsuke Nakamura -Cc: Stephane Eranian -Cc: Xing Zhengjun -Link: https://lore.kernel.org/r/20220507053410.3798748-4-irogers@google.com -Signed-off-by: Arnaldo Carvalho de Melo -Signed-off-by: Greg Kroah-Hartman ---- - tools/perf/util/evsel.c | 41 +++++++++++++++++++++++++++++++---------- - tools/perf/util/evsel.h | 11 +++++++++++ - 2 files changed, 42 insertions(+), 10 deletions(-) - ---- a/tools/perf/util/evsel.c -+++ b/tools/perf/util/evsel.c -@@ -59,6 +59,33 @@ struct perf_missing_features perf_missin - - static clockid_t clockid; - -+static const char *const perf_tool_event__tool_names[PERF_TOOL_MAX] = { -+ NULL, -+ "duration_time", -+ "user_time", -+ "system_time", -+}; -+ -+const char *perf_tool_event__to_str(enum perf_tool_event ev) -+{ -+ if (ev > PERF_TOOL_NONE && ev < PERF_TOOL_MAX) -+ return perf_tool_event__tool_names[ev]; -+ -+ return NULL; -+} -+ -+enum perf_tool_event perf_tool_event__from_str(const char *str) -+{ -+ int i; -+ -+ perf_tool_event__for_each_event(i) { -+ if (!strcmp(str, perf_tool_event__tool_names[i])) -+ return i; -+ } -+ return PERF_TOOL_NONE; -+} -+ -+ - static int evsel__no_extra_init(struct evsel *evsel __maybe_unused) - { - return 0; -@@ -600,15 +627,9 @@ static int evsel__sw_name(struct evsel * - return r + evsel__add_modifiers(evsel, bf + r, size - r); - } - --const char *evsel__tool_names[PERF_TOOL_MAX] = { -- "duration_time", -- "user_time", -- "system_time", --}; -- - static int evsel__tool_name(enum perf_tool_event ev, char *bf, size_t size) - { -- return scnprintf(bf, size, "%s", evsel__tool_names[ev]); -+ return scnprintf(bf, size, "%s", perf_tool_event__to_str(ev)); - } - - static int __evsel__bp_name(char *bf, size_t size, u64 addr, u64 type) -@@ -761,7 +782,7 @@ const char *evsel__name(struct evsel *ev - break; - - case PERF_TYPE_SOFTWARE: -- if (evsel->tool_event) -+ if (evsel__is_tool(evsel)) - evsel__tool_name(evsel->tool_event, bf, sizeof(bf)); - else - evsel__sw_name(evsel, bf, sizeof(bf)); -@@ -794,8 +815,8 @@ const char *evsel__metric_id(const struc - if (evsel->metric_id) - return evsel->metric_id; - -- if (evsel->core.attr.type == PERF_TYPE_SOFTWARE && evsel->tool_event) -- return "duration_time"; -+ if (evsel__is_tool(evsel)) -+ return perf_tool_event__to_str(evsel->tool_event); - - return "unknown"; - } ---- a/tools/perf/util/evsel.h -+++ b/tools/perf/util/evsel.h -@@ -30,6 +30,12 @@ enum perf_tool_event { - PERF_TOOL_DURATION_TIME = 1, - }; - -+const char *perf_tool_event__to_str(enum perf_tool_event ev); -+enum perf_tool_event perf_tool_event__from_str(const char *str); -+ -+#define perf_tool_event__for_each_event(ev) \ -+ for ((ev) = PERF_TOOL_DURATION_TIME; (ev) < PERF_TOOL_MAX; ev++) -+ - /** struct evsel - event selector - * - * @evlist - evlist this evsel is in, if it is in one. -@@ -265,6 +271,11 @@ int __evsel__hw_cache_type_op_res_name(u - const char *evsel__name(struct evsel *evsel); - const char *evsel__metric_id(const struct evsel *evsel); - -+static inline bool evsel__is_tool(const struct evsel *evsel) -+{ -+ return evsel->tool_event != PERF_TOOL_NONE; -+} -+ - const char *evsel__group_name(struct evsel *evsel); - int evsel__group_desc(struct evsel *evsel, char *buf, size_t size); - diff --git a/queue-5.15/perf-list-print-all-available-tool-events.patch b/queue-5.15/perf-list-print-all-available-tool-events.patch deleted file mode 100644 index 8d0ad271df1..00000000000 --- a/queue-5.15/perf-list-print-all-available-tool-events.patch +++ /dev/null @@ -1,174 +0,0 @@ -From f752ec5fecaa469ef91d250df75bcd9ee72ab9f3 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 20 Apr 2022 19:42:44 +0200 -Subject: perf list: Print all available tool events - -From: Florian Fischer - -[ Upstream commit 75eafc970bd9d36d906960a81376549f5dc99696 ] - -Introduce names for the new tool events 'user_time' and 'system_time'. - - $ perf list - ... - duration_time [Tool event] - user_time [Tool event] - system_time [Tool event] - ... - -Committer testing: - -Before: - - $ perf list | grep Tool - duration_time [Tool event] - $ - -After: - - $ perf list | grep Tool - duration_time [Tool event] - user_time [Tool event] - system_time [Tool event] - $ - -Signed-off-by: Florian Fischer -Tested-by: Arnaldo Carvalho de Melo -Cc: Peter Zijlstra -Cc: Xing Zhengjun -Link: http://lore.kernel.org/lkml/20220420174244.1741958-2-florian.fischer@muhq.space -Signed-off-by: Arnaldo Carvalho de Melo -Stable-dep-of: 71c86cda750b ("perf parse-events: Remove "not supported" hybrid cache events") -Signed-off-by: Sasha Levin ---- - tools/perf/util/evsel.c | 19 ++++++++++------ - tools/perf/util/evsel.h | 1 + - tools/perf/util/parse-events.c | 40 +++++++++++++++++++++++++++++----- - 3 files changed, 47 insertions(+), 13 deletions(-) - -diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c -index 1e43fac90fc8..dbb27b61e0de 100644 ---- a/tools/perf/util/evsel.c -+++ b/tools/perf/util/evsel.c -@@ -600,6 +600,17 @@ static int evsel__sw_name(struct evsel *evsel, char *bf, size_t size) - return r + evsel__add_modifiers(evsel, bf + r, size - r); - } - -+const char *evsel__tool_names[PERF_TOOL_MAX] = { -+ "duration_time", -+ "user_time", -+ "system_time", -+}; -+ -+static int evsel__tool_name(enum perf_tool_event ev, char *bf, size_t size) -+{ -+ return scnprintf(bf, size, "%s", evsel__tool_names[ev]); -+} -+ - static int __evsel__bp_name(char *bf, size_t size, u64 addr, u64 type) - { - int r; -@@ -726,12 +737,6 @@ static int evsel__raw_name(struct evsel *evsel, char *bf, size_t size) - return ret + evsel__add_modifiers(evsel, bf + ret, size - ret); - } - --static int evsel__tool_name(char *bf, size_t size) --{ -- int ret = scnprintf(bf, size, "duration_time"); -- return ret; --} -- - const char *evsel__name(struct evsel *evsel) - { - char bf[128]; -@@ -757,7 +762,7 @@ const char *evsel__name(struct evsel *evsel) - - case PERF_TYPE_SOFTWARE: - if (evsel->tool_event) -- evsel__tool_name(bf, sizeof(bf)); -+ evsel__tool_name(evsel->tool_event, bf, sizeof(bf)); - else - evsel__sw_name(evsel, bf, sizeof(bf)); - break; -diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h -index 45476a888942..cd3e38ed3dfa 100644 ---- a/tools/perf/util/evsel.h -+++ b/tools/perf/util/evsel.h -@@ -257,6 +257,7 @@ extern const char *evsel__hw_cache_op[PERF_COUNT_HW_CACHE_OP_MAX][EVSEL__MAX_ALI - extern const char *evsel__hw_cache_result[PERF_COUNT_HW_CACHE_RESULT_MAX][EVSEL__MAX_ALIASES]; - extern const char *evsel__hw_names[PERF_COUNT_HW_MAX]; - extern const char *evsel__sw_names[PERF_COUNT_SW_MAX]; -+extern const char *evsel__tool_names[PERF_TOOL_MAX]; - extern char *evsel__bpf_counter_events; - bool evsel__match_bpf_counter_events(const char *name); - -diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c -index 533c4b216ae2..e6b51810e85c 100644 ---- a/tools/perf/util/parse-events.c -+++ b/tools/perf/util/parse-events.c -@@ -156,6 +156,21 @@ struct event_symbol event_symbols_sw[PERF_COUNT_SW_MAX] = { - }, - }; - -+struct event_symbol event_symbols_tool[PERF_TOOL_MAX] = { -+ [PERF_TOOL_DURATION_TIME] = { -+ .symbol = "duration_time", -+ .alias = "", -+ }, -+ [PERF_TOOL_USER_TIME] = { -+ .symbol = "user_time", -+ .alias = "", -+ }, -+ [PERF_TOOL_SYSTEM_TIME] = { -+ .symbol = "system_time", -+ .alias = "", -+ }, -+}; -+ - #define __PERF_EVENT_FIELD(config, name) \ - ((config & PERF_EVENT_##name##_MASK) >> PERF_EVENT_##name##_SHIFT) - -@@ -2934,21 +2949,34 @@ int print_hwcache_events(const char *event_glob, bool name_only) - return evt_num; - } - --static void print_tool_event(const char *name, const char *event_glob, -+static void print_tool_event(const struct event_symbol *syms, const char *event_glob, - bool name_only) - { -- if (event_glob && !strglobmatch(name, event_glob)) -+ if (syms->symbol == NULL) -+ return; -+ -+ if (event_glob && !(strglobmatch(syms->symbol, event_glob) || -+ (syms->alias && strglobmatch(syms->alias, event_glob)))) - return; -+ - if (name_only) -- printf("%s ", name); -- else -+ printf("%s ", syms->symbol); -+ else { -+ char name[MAX_NAME_LEN]; -+ if (syms->alias && strlen(syms->alias)) -+ snprintf(name, MAX_NAME_LEN, "%s OR %s", syms->symbol, syms->alias); -+ else -+ strlcpy(name, syms->symbol, MAX_NAME_LEN); - printf(" %-50s [%s]\n", name, "Tool event"); -- -+ } - } - - void print_tool_events(const char *event_glob, bool name_only) - { -- print_tool_event("duration_time", event_glob, name_only); -+ // Start at 1 because the first enum entry symbols no tool event -+ for (int i = 1; i < PERF_TOOL_MAX; ++i) { -+ print_tool_event(event_symbols_tool + i, event_glob, name_only); -+ } - if (pager_in_use()) - printf("\n"); - } --- -2.35.1 - diff --git a/queue-5.15/series b/queue-5.15/series index b096a3a111b..8647f654635 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -76,8 +76,6 @@ perf-parse-events-identify-broken-modifiers.patch perf-list-display-hybrid-pmu-events-with-cpu-type.patch perf-tools-check-vmlinux-kallsyms-arguments-in-all-t.patch perf-tools-enhance-the-matching-of-sub-commands-abbr.patch -perf-list-print-all-available-tool-events.patch x86-alternative-fix-race-in-try_get_desc.patch drm-i915-gem-really-move-i915_gem_context.link-under-ref-protection.patch perf-pmu-fix-alias-events-list.patch -perf-evsel-add-tool-event-helpers.patch