+++ /dev/null
-From fa816e764e0de49974df6db2bc09576c3e53e09f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 24 May 2022 10:54:26 +0300
-Subject: perf evlist: Add evlist__add_dummy_on_all_cpus()
-
-From: Adrian Hunter <adrian.hunter@intel.com>
-
-[ Upstream commit 126d68fdcabed8c2ca5ffaba785add93ef722da8 ]
-
-Add evlist__add_dummy_on_all_cpus() to enable creating a system-wide dummy
-event that sets up the system-wide maps before map propagation.
-
-For convenience, add evlist__add_aux_dummy() so that the logic can be used
-whether or not the event needs to be system-wide.
-
-Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
-Acked-by: Ian Rogers <irogers@google.com>
-Acked-by: Namhyung Kim <namhyung@kernel.org>
-Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
-Cc: Ian Rogers <irogers@google.com>
-Cc: Jiri Olsa <jolsa@kernel.org>
-Cc: Leo Yan <leo.yan@linaro.org>
-Link: https://lore.kernel.org/r/20220524075436.29144-6-adrian.hunter@intel.com
-Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-Stable-dep-of: f9cdeb58a9cf ("perf evlist: Avoid frequency mode for the dummy event")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/perf/util/evlist.c | 45 ++++++++++++++++++++++++++++++++++++++++
- tools/perf/util/evlist.h | 5 +++++
- 2 files changed, 50 insertions(+)
-
-diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
-index 98ae432470cdd..117420abdc325 100644
---- a/tools/perf/util/evlist.c
-+++ b/tools/perf/util/evlist.c
-@@ -261,6 +261,51 @@ int evlist__add_dummy(struct evlist *evlist)
- return 0;
- }
-
-+static void evlist__add_on_all_cpus(struct evlist *evlist, struct evsel *evsel)
-+{
-+ evsel->core.system_wide = true;
-+
-+ /*
-+ * All CPUs.
-+ *
-+ * Note perf_event_open() does not accept CPUs that are not online, so
-+ * in fact this CPU list will include only all online CPUs.
-+ */
-+ perf_cpu_map__put(evsel->core.own_cpus);
-+ evsel->core.own_cpus = perf_cpu_map__new(NULL);
-+ perf_cpu_map__put(evsel->core.cpus);
-+ evsel->core.cpus = perf_cpu_map__get(evsel->core.own_cpus);
-+
-+ /* No threads */
-+ perf_thread_map__put(evsel->core.threads);
-+ evsel->core.threads = perf_thread_map__new_dummy();
-+
-+ evlist__add(evlist, evsel);
-+}
-+
-+struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide)
-+{
-+ struct evsel *evsel = evlist__dummy_event(evlist);
-+
-+ if (!evsel)
-+ return NULL;
-+
-+ evsel->core.attr.exclude_kernel = 1;
-+ evsel->core.attr.exclude_guest = 1;
-+ evsel->core.attr.exclude_hv = 1;
-+ evsel->core.attr.freq = 0;
-+ evsel->core.attr.sample_period = 1;
-+ evsel->no_aux_samples = true;
-+ evsel->name = strdup("dummy:u");
-+
-+ if (system_wide)
-+ evlist__add_on_all_cpus(evlist, evsel);
-+ else
-+ evlist__add(evlist, evsel);
-+
-+ return evsel;
-+}
-+
- static int evlist__add_attrs(struct evlist *evlist, struct perf_event_attr *attrs, size_t nr_attrs)
- {
- struct evsel *evsel, *n;
-diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h
-index 9298fce53ea31..eb36f85ba3f3e 100644
---- a/tools/perf/util/evlist.h
-+++ b/tools/perf/util/evlist.h
-@@ -111,6 +111,11 @@ int __evlist__add_default_attrs(struct evlist *evlist,
- __evlist__add_default_attrs(evlist, array, ARRAY_SIZE(array))
-
- int evlist__add_dummy(struct evlist *evlist);
-+struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide);
-+static inline struct evsel *evlist__add_dummy_on_all_cpus(struct evlist *evlist)
-+{
-+ return evlist__add_aux_dummy(evlist, true);
-+}
-
- int perf_evlist__add_sb_event(struct evlist *evlist,
- struct perf_event_attr *attr,
---
-2.42.0
-
leds-trigger-ledtrig-cpu-fix-output-may-be-truncated.patch
tty-tty_jobctrl-fix-pid-memleak-in-disassociate_ctty.patch
livepatch-fix-missing-newline-character-in-klp_resol.patch
-perf-evlist-add-evlist__add_dummy_on_all_cpus.patch
usb-dwc2-fix-possible-null-pointer-dereference-cause.patch
dmaengine-ti-edma-handle-irq_of_parse_and_map-errors.patch
misc-st_core-do-not-call-kfree_skb-under-spin_lock_i.patch
+++ /dev/null
-From a4455e5be294c717c5f1b67c1ef9471f3229e41f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 24 May 2022 10:54:26 +0300
-Subject: perf evlist: Add evlist__add_dummy_on_all_cpus()
-
-From: Adrian Hunter <adrian.hunter@intel.com>
-
-[ Upstream commit 126d68fdcabed8c2ca5ffaba785add93ef722da8 ]
-
-Add evlist__add_dummy_on_all_cpus() to enable creating a system-wide dummy
-event that sets up the system-wide maps before map propagation.
-
-For convenience, add evlist__add_aux_dummy() so that the logic can be used
-whether or not the event needs to be system-wide.
-
-Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
-Acked-by: Ian Rogers <irogers@google.com>
-Acked-by: Namhyung Kim <namhyung@kernel.org>
-Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
-Cc: Ian Rogers <irogers@google.com>
-Cc: Jiri Olsa <jolsa@kernel.org>
-Cc: Leo Yan <leo.yan@linaro.org>
-Link: https://lore.kernel.org/r/20220524075436.29144-6-adrian.hunter@intel.com
-Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-Stable-dep-of: f9cdeb58a9cf ("perf evlist: Avoid frequency mode for the dummy event")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/perf/util/evlist.c | 45 ++++++++++++++++++++++++++++++++++++++++
- tools/perf/util/evlist.h | 5 +++++
- 2 files changed, 50 insertions(+)
-
-diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
-index 39d294f6c3218..a75cdcf381308 100644
---- a/tools/perf/util/evlist.c
-+++ b/tools/perf/util/evlist.c
-@@ -258,6 +258,51 @@ int evlist__add_dummy(struct evlist *evlist)
- return 0;
- }
-
-+static void evlist__add_on_all_cpus(struct evlist *evlist, struct evsel *evsel)
-+{
-+ evsel->core.system_wide = true;
-+
-+ /*
-+ * All CPUs.
-+ *
-+ * Note perf_event_open() does not accept CPUs that are not online, so
-+ * in fact this CPU list will include only all online CPUs.
-+ */
-+ perf_cpu_map__put(evsel->core.own_cpus);
-+ evsel->core.own_cpus = perf_cpu_map__new(NULL);
-+ perf_cpu_map__put(evsel->core.cpus);
-+ evsel->core.cpus = perf_cpu_map__get(evsel->core.own_cpus);
-+
-+ /* No threads */
-+ perf_thread_map__put(evsel->core.threads);
-+ evsel->core.threads = perf_thread_map__new_dummy();
-+
-+ evlist__add(evlist, evsel);
-+}
-+
-+struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide)
-+{
-+ struct evsel *evsel = evlist__dummy_event(evlist);
-+
-+ if (!evsel)
-+ return NULL;
-+
-+ evsel->core.attr.exclude_kernel = 1;
-+ evsel->core.attr.exclude_guest = 1;
-+ evsel->core.attr.exclude_hv = 1;
-+ evsel->core.attr.freq = 0;
-+ evsel->core.attr.sample_period = 1;
-+ evsel->no_aux_samples = true;
-+ evsel->name = strdup("dummy:u");
-+
-+ if (system_wide)
-+ evlist__add_on_all_cpus(evlist, evsel);
-+ else
-+ evlist__add(evlist, evsel);
-+
-+ return evsel;
-+}
-+
- static int evlist__add_attrs(struct evlist *evlist, struct perf_event_attr *attrs, size_t nr_attrs)
- {
- struct evsel *evsel, *n;
-diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h
-index ec177f783ee67..decf5c944adba 100644
---- a/tools/perf/util/evlist.h
-+++ b/tools/perf/util/evlist.h
-@@ -112,6 +112,11 @@ int __evlist__add_default_attrs(struct evlist *evlist,
- int arch_evlist__add_default_attrs(struct evlist *evlist);
-
- int evlist__add_dummy(struct evlist *evlist);
-+struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide);
-+static inline struct evsel *evlist__add_dummy_on_all_cpus(struct evlist *evlist)
-+{
-+ return evlist__add_aux_dummy(evlist, true);
-+}
-
- int evlist__add_sb_event(struct evlist *evlist, struct perf_event_attr *attr,
- evsel__sb_cb_t cb, void *data);
---
-2.42.0
-
f2fs-compress-fix-to-avoid-redundant-compress-extens.patch
tty-tty_jobctrl-fix-pid-memleak-in-disassociate_ctty.patch
livepatch-fix-missing-newline-character-in-klp_resol.patch
-perf-evlist-add-evlist__add_dummy_on_all_cpus.patch
dmaengine-idxd-register-dsa_bus_type-before-register.patch
usb-dwc2-fix-possible-null-pointer-dereference-cause.patch
usb-chipidea-fix-dma-overwrite-for-tegra.patch