From: Greg Kroah-Hartman Date: Wed, 19 Jul 2017 09:04:59 +0000 (+0200) Subject: 4.12-stable patches X-Git-Tag: v4.12.3~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5e76f8c92eac96539f4b03f7f62c201732c93de0;p=thirdparty%2Fkernel%2Fstable-queue.git 4.12-stable patches added patches: sched-topology-optimize-build_group_mask.patch --- diff --git a/queue-4.12/sched-topology-fix-overlapping-sched_group_mask.patch b/queue-4.12/sched-topology-fix-overlapping-sched_group_mask.patch index e3e6273cf7e..a7bfab770b7 100644 --- a/queue-4.12/sched-topology-fix-overlapping-sched_group_mask.patch +++ b/queue-4.12/sched-topology-fix-overlapping-sched_group_mask.patch @@ -73,7 +73,7 @@ Signed-off-by: Greg Kroah-Hartman * range. @@ -497,11 +500,24 @@ static void build_group_mask(struct sche - for_each_cpu(i, span) { + for_each_cpu(i, sg_span) { sibling = *per_cpu_ptr(sdd->sd, i); - if (!cpumask_test_cpu(i, sched_domain_span(sibling))) + diff --git a/queue-4.12/sched-topology-optimize-build_group_mask.patch b/queue-4.12/sched-topology-optimize-build_group_mask.patch new file mode 100644 index 00000000000..22a9ff85d06 --- /dev/null +++ b/queue-4.12/sched-topology-optimize-build_group_mask.patch @@ -0,0 +1,46 @@ +From f32d782e31bf079f600dcec126ed117b0577e85c Mon Sep 17 00:00:00 2001 +From: Lauro Ramos Venancio +Date: Thu, 20 Apr 2017 16:51:40 -0300 +Subject: sched/topology: Optimize build_group_mask() + +From: Lauro Ramos Venancio + +commit f32d782e31bf079f600dcec126ed117b0577e85c upstream. + +The group mask is always used in intersection with the group CPUs. So, +when building the group mask, we don't have to care about CPUs that are +not part of the group. + +Signed-off-by: Lauro Ramos Venancio +Signed-off-by: Peter Zijlstra (Intel) +Cc: Linus Torvalds +Cc: Mike Galbraith +Cc: Peter Zijlstra +Cc: Thomas Gleixner +Cc: lwang@redhat.com +Cc: riel@redhat.com +Link: http://lkml.kernel.org/r/1492717903-5195-2-git-send-email-lvenanci@redhat.com +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/sched/topology.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/kernel/sched/topology.c ++++ b/kernel/sched/topology.c +@@ -490,12 +490,12 @@ enum s_alloc { + */ + static void build_group_mask(struct sched_domain *sd, struct sched_group *sg) + { +- const struct cpumask *span = sched_domain_span(sd); ++ const struct cpumask *sg_span = sched_group_cpus(sg); + struct sd_data *sdd = sd->private; + struct sched_domain *sibling; + int i; + +- for_each_cpu(i, span) { ++ for_each_cpu(i, sg_span) { + sibling = *per_cpu_ptr(sdd->sd, i); + if (!cpumask_test_cpu(i, sched_domain_span(sibling))) + continue; diff --git a/queue-4.12/series b/queue-4.12/series index 01a4deb1726..3d9ed81270a 100644 --- a/queue-4.12/series +++ b/queue-4.12/series @@ -71,6 +71,7 @@ crypto-caam-fix-signals-handling.patch keys-dh-validate-__spare-field.patch sched-headers-uapi-fix-linux-sched-types.h-userspace-compilation-errors.patch sched-topology-fix-building-of-overlapping-sched-groups.patch +sched-topology-optimize-build_group_mask.patch sched-topology-fix-overlapping-sched_group_mask.patch pm-wakeirq-convert-to-srcu.patch pstore-fix-leaked-pstore_record-in-pstore_get_backend_records.patch