From 1b98c78c5c6dde817f14545c8f6b0bc083c01093 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 16 Oct 2019 08:52:31 -0700 Subject: [PATCH] drop 4.4 perf patch that was breaking the build --- ...previous-counts-on-repeat-with-inter.patch | 168 ------------------ queue-4.4/series | 1 - 2 files changed, 169 deletions(-) delete mode 100644 queue-4.4/perf-stat-reset-previous-counts-on-repeat-with-inter.patch diff --git a/queue-4.4/perf-stat-reset-previous-counts-on-repeat-with-inter.patch b/queue-4.4/perf-stat-reset-previous-counts-on-repeat-with-inter.patch deleted file mode 100644 index 5687a304e26..00000000000 --- a/queue-4.4/perf-stat-reset-previous-counts-on-repeat-with-inter.patch +++ /dev/null @@ -1,168 +0,0 @@ -From d7f988d8e1aa5c4f7691c2dbb580db3188cf6297 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 4 Sep 2019 15:17:37 +0530 -Subject: perf stat: Reset previous counts on repeat with interval - -From: Srikar Dronamraju - -[ Upstream commit b63fd11cced17fcb8e133def29001b0f6aaa5e06 ] - -When using 'perf stat' with repeat and interval option, it shows wrong -values for events. - -The wrong values will be shown for the first interval on the second and -subsequent repetitions. - -Without the fix: - - # perf stat -r 3 -I 2000 -e faults -e sched:sched_switch -a sleep 5 - - 2.000282489 53 faults - 2.000282489 513 sched:sched_switch - 4.005478208 3,721 faults - 4.005478208 2,666 sched:sched_switch - 5.025470933 395 faults - 5.025470933 1,307 sched:sched_switch - 2.009602825 1,84,46,74,40,73,70,95,47,520 faults <------ - 2.009602825 1,84,46,74,40,73,70,95,49,568 sched:sched_switch <------ - 4.019612206 4,730 faults - 4.019612206 2,746 sched:sched_switch - 5.039615484 3,953 faults - 5.039615484 1,496 sched:sched_switch - 2.000274620 1,84,46,74,40,73,70,95,47,520 faults <------ - 2.000274620 1,84,46,74,40,73,70,95,47,520 sched:sched_switch <------ - 4.000480342 4,282 faults - 4.000480342 2,303 sched:sched_switch - 5.000916811 1,322 faults - 5.000916811 1,064 sched:sched_switch - # - -prev_raw_counts is allocated when using intervals. This is used when -calculating the difference in the counts of events when using interval. - -The current counts are stored in prev_raw_counts to calculate the -differences in the next iteration. - -On the first interval of the second and subsequent repetitions, -prev_raw_counts would be the values stored in the last interval of the -previous repetitions, while the current counts will only be for the -first interval of the current repetition. - -Hence there is a possibility of events showing up as big number. - -Fix this by resetting prev_raw_counts whenever perf stat repeats the -command. - -With the fix: - - # perf stat -r 3 -I 2000 -e faults -e sched:sched_switch -a sleep 5 - - 2.019349347 2,597 faults - 2.019349347 2,753 sched:sched_switch - 4.019577372 3,098 faults - 4.019577372 2,532 sched:sched_switch - 5.019415481 1,879 faults - 5.019415481 1,356 sched:sched_switch - 2.000178813 8,468 faults - 2.000178813 2,254 sched:sched_switch - 4.000404621 7,440 faults - 4.000404621 1,266 sched:sched_switch - 5.040196079 2,458 faults - 5.040196079 556 sched:sched_switch - 2.000191939 6,870 faults - 2.000191939 1,170 sched:sched_switch - 4.000414103 541 faults - 4.000414103 902 sched:sched_switch - 5.000809863 450 faults - 5.000809863 364 sched:sched_switch - # - -Committer notes: - -This was broken since the cset introducing the --interval feature, i.e. ---repeat + --interval wasn't tested at that point, add the Fixes tag so -that automatic scripts can pick this up. - -Fixes: 13370a9b5bb8 ("perf stat: Add interval printing") -Signed-off-by: Srikar Dronamraju -Acked-by: Jiri Olsa -Tested-by: Arnaldo Carvalho de Melo -Tested-by: Ravi Bangoria -Cc: Namhyung Kim -Cc: Naveen N. Rao -Cc: Stephane Eranian -Cc: stable@vger.kernel.org # v3.9+ -Link: http://lore.kernel.org/lkml/20190904094738.9558-2-srikar@linux.vnet.ibm.com -[ Fixed up conflicts with libperf, i.e. some perf_{evsel,evlist} lost the 'perf' prefix ] -Signed-off-by: Arnaldo Carvalho de Melo -Signed-off-by: Sasha Levin ---- - tools/perf/builtin-stat.c | 3 +++ - tools/perf/util/stat.c | 17 +++++++++++++++++ - tools/perf/util/stat.h | 1 + - 3 files changed, 21 insertions(+) - -diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c -index 65a6922db7223..e80d47fdda3e1 100644 ---- a/tools/perf/builtin-stat.c -+++ b/tools/perf/builtin-stat.c -@@ -1415,6 +1415,9 @@ int cmd_stat(int argc, const char **argv, const char *prefix __maybe_unused) - fprintf(output, "[ perf stat: executing run #%d ... ]\n", - run_idx + 1); - -+ if (run_idx != 0) -+ perf_evlist__reset_prev_raw_counts(evsel_list); -+ - status = run_perf_stat(argc, argv); - if (forever && status != -1 && !interval) { - print_counters(NULL, argc, argv); -diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c -index 6ce624cb70012..a252714700d3c 100644 ---- a/tools/perf/util/stat.c -+++ b/tools/perf/util/stat.c -@@ -140,6 +140,15 @@ void perf_evsel__free_prev_raw_counts(struct perf_evsel *evsel) - evsel->prev_raw_counts = NULL; - } - -+static void perf_evsel__reset_prev_raw_counts(struct perf_evsel *evsel) -+{ -+ if (evsel->prev_raw_counts) { -+ evsel->prev_raw_counts->aggr.val = 0; -+ evsel->prev_raw_counts->aggr.ena = 0; -+ evsel->prev_raw_counts->aggr.run = 0; -+ } -+} -+ - int perf_evsel__alloc_stats(struct perf_evsel *evsel, bool alloc_raw) - { - int ncpus = perf_evsel__nr_cpus(evsel); -@@ -190,6 +199,14 @@ void perf_evlist__reset_stats(struct perf_evlist *evlist) - } - } - -+void perf_evlist__reset_prev_raw_counts(struct perf_evlist *evlist) -+{ -+ struct perf_evsel *evsel; -+ -+ evlist__for_each_entry(evlist, evsel) -+ perf_evsel__reset_prev_raw_counts(evsel); -+} -+ - static void zero_per_pkg(struct perf_evsel *counter) - { - if (counter->per_pkg_mask) -diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h -index da1d11c4f8c19..5d6631207a506 100644 ---- a/tools/perf/util/stat.h -+++ b/tools/perf/util/stat.h -@@ -87,6 +87,7 @@ int perf_evsel__alloc_stats(struct perf_evsel *evsel, bool alloc_raw); - int perf_evlist__alloc_stats(struct perf_evlist *evlist, bool alloc_raw); - void perf_evlist__free_stats(struct perf_evlist *evlist); - void perf_evlist__reset_stats(struct perf_evlist *evlist); -+void perf_evlist__reset_prev_raw_counts(struct perf_evlist *evlist); - - int perf_stat_process_counter(struct perf_stat_config *config, - struct perf_evsel *counter); --- -2.20.1 - diff --git a/queue-4.4/series b/queue-4.4/series index 8d1e90d9226..b2b4332278a 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -21,7 +21,6 @@ fuse-fix-memleak-in-cuse_channel_open.patch kernel-elfcore.c-include-proper-prototypes.patch tools-lib-traceevent-do-not-free-tep-cmdlines-in-add.patch perf-stat-fix-a-segmentation-fault-when-using-repeat.patch -perf-stat-reset-previous-counts-on-repeat-with-inter.patch crypto-caam-fix-concurrency-issue-in-givencrypt-descriptor.patch cfg80211-add-and-use-strongly-typed-element-iteration-macros.patch cfg80211-use-const-more-consistently-in-for_each_element-macros.patch -- 2.47.2