From 6c1ddb3463e92dbf2710a7556a7aa5ea17d2f76c Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 13 Jan 2015 16:12:52 -0800 Subject: [PATCH] remove powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch --- ..._map-after-setting-active-and-online.patch | 60 ------------------- queue-3.10/series | 1 - ..._map-after-setting-active-and-online.patch | 60 ------------------- queue-3.14/series | 1 - ..._map-after-setting-active-and-online.patch | 60 ------------------- queue-3.18/series | 1 - 6 files changed, 183 deletions(-) delete mode 100644 queue-3.10/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch delete mode 100644 queue-3.14/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch delete mode 100644 queue-3.18/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch diff --git a/queue-3.10/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch b/queue-3.10/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch deleted file mode 100644 index ece2fae91ec..00000000000 --- a/queue-3.10/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 7c5c92ed56d932b2c19c3f8aea86369509407d33 Mon Sep 17 00:00:00 2001 -From: Anton Blanchard -Date: Tue, 9 Dec 2014 10:58:19 +1100 -Subject: powerpc: Secondary CPUs must set cpu_callin_map after setting active and online - -From: Anton Blanchard - -commit 7c5c92ed56d932b2c19c3f8aea86369509407d33 upstream. - -I have a busy ppc64le KVM box where guests sometimes hit the infamous -"kernel BUG at kernel/smpboot.c:134!" issue during boot: - - BUG_ON(td->cpu != smp_processor_id()); - -Basically a per CPU hotplug thread scheduled on the wrong CPU. The oops -output confirms it: - - CPU: 0 - Comm: watchdog/130 - -The problem is that we aren't ensuring the CPU active and online bits are set -before allowing the master to continue on. The master unparks the secondary -CPUs kthreads and the scheduler looks for a CPU to run on. It calls -select_task_rq and realises the suggested CPU is not in the cpus_allowed -mask. It then ends up in select_fallback_rq, and since the active and -online bits aren't set we choose some other CPU to run on. - -Signed-off-by: Anton Blanchard -Signed-off-by: Michael Ellerman -Signed-off-by: Greg Kroah-Hartman - ---- - arch/powerpc/kernel/smp.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/smp.c -+++ b/arch/powerpc/kernel/smp.c -@@ -622,7 +622,6 @@ __cpuinit void start_secondary(void *unu - smp_store_cpu_info(cpu); - set_dec(tb_ticks_per_jiffy); - preempt_disable(); -- cpu_callin_map[cpu] = 1; - - if (smp_ops->setup_cpu) - smp_ops->setup_cpu(cpu); -@@ -667,6 +666,14 @@ __cpuinit void start_secondary(void *unu - } - of_node_put(l2_cache); - -+ /* -+ * CPU must be marked active and online before we signal back to the -+ * master, because the scheduler needs to see the cpu_online and -+ * cpu_active bits set. -+ */ -+ smp_wmb(); -+ cpu_callin_map[cpu] = 1; -+ - local_irq_enable(); - - cpu_startup_entry(CPUHP_ONLINE); diff --git a/queue-3.10/series b/queue-3.10/series index 74f748a342e..0127ece425b 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -8,7 +8,6 @@ ath5k-fix-hardware-queue-index-assignment.patch asoc-sigmadsp-refuse-to-load-firmware-files-with-a-non-supported-version.patch asoc-max98090-fix-ill-defined-sidetone-route.patch asoc-dwc-ensure-fifos-are-flushed-to-prevent-channel-swap.patch -powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch pci-restore-detection-of-read-only-bars.patch pstore-ram-fix-hangs-by-using-write-combine-mappings.patch pstore-ram-allow-optional-mapping-with-pgprot_noncached.patch diff --git a/queue-3.14/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch b/queue-3.14/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch deleted file mode 100644 index 99e486b23d4..00000000000 --- a/queue-3.14/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 7c5c92ed56d932b2c19c3f8aea86369509407d33 Mon Sep 17 00:00:00 2001 -From: Anton Blanchard -Date: Tue, 9 Dec 2014 10:58:19 +1100 -Subject: powerpc: Secondary CPUs must set cpu_callin_map after setting active and online - -From: Anton Blanchard - -commit 7c5c92ed56d932b2c19c3f8aea86369509407d33 upstream. - -I have a busy ppc64le KVM box where guests sometimes hit the infamous -"kernel BUG at kernel/smpboot.c:134!" issue during boot: - - BUG_ON(td->cpu != smp_processor_id()); - -Basically a per CPU hotplug thread scheduled on the wrong CPU. The oops -output confirms it: - - CPU: 0 - Comm: watchdog/130 - -The problem is that we aren't ensuring the CPU active and online bits are set -before allowing the master to continue on. The master unparks the secondary -CPUs kthreads and the scheduler looks for a CPU to run on. It calls -select_task_rq and realises the suggested CPU is not in the cpus_allowed -mask. It then ends up in select_fallback_rq, and since the active and -online bits aren't set we choose some other CPU to run on. - -Signed-off-by: Anton Blanchard -Signed-off-by: Michael Ellerman -Signed-off-by: Greg Kroah-Hartman - ---- - arch/powerpc/kernel/smp.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/smp.c -+++ b/arch/powerpc/kernel/smp.c -@@ -707,7 +707,6 @@ void start_secondary(void *unused) - smp_store_cpu_info(cpu); - set_dec(tb_ticks_per_jiffy); - preempt_disable(); -- cpu_callin_map[cpu] = 1; - - if (smp_ops->setup_cpu) - smp_ops->setup_cpu(cpu); -@@ -743,6 +742,14 @@ void start_secondary(void *unused) - notify_cpu_starting(cpu); - set_cpu_online(cpu, true); - -+ /* -+ * CPU must be marked active and online before we signal back to the -+ * master, because the scheduler needs to see the cpu_online and -+ * cpu_active bits set. -+ */ -+ smp_wmb(); -+ cpu_callin_map[cpu] = 1; -+ - local_irq_enable(); - - cpu_startup_entry(CPUHP_ONLINE); diff --git a/queue-3.14/series b/queue-3.14/series index b7bffed4e10..fe23465ad97 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -17,7 +17,6 @@ asoc-max98090-fix-ill-defined-sidetone-route.patch asoc-dwc-ensure-fifos-are-flushed-to-prevent-channel-swap.patch powerpc-fix-bad-null-pointer-check-in-udbg_uart_getc_poll.patch powerpc-book3s-fix-partial-invalidation-of-tlbs-in-mce-code.patch -powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch powerpc-powernv-switch-off-mmu-before-entering-nap-sleep-rvwinkle-mode.patch pci-restore-detection-of-read-only-bars.patch pstore-ram-fix-hangs-by-using-write-combine-mappings.patch diff --git a/queue-3.18/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch b/queue-3.18/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch deleted file mode 100644 index 239b0cfa23b..00000000000 --- a/queue-3.18/powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 7c5c92ed56d932b2c19c3f8aea86369509407d33 Mon Sep 17 00:00:00 2001 -From: Anton Blanchard -Date: Tue, 9 Dec 2014 10:58:19 +1100 -Subject: powerpc: Secondary CPUs must set cpu_callin_map after setting active and online - -From: Anton Blanchard - -commit 7c5c92ed56d932b2c19c3f8aea86369509407d33 upstream. - -I have a busy ppc64le KVM box where guests sometimes hit the infamous -"kernel BUG at kernel/smpboot.c:134!" issue during boot: - - BUG_ON(td->cpu != smp_processor_id()); - -Basically a per CPU hotplug thread scheduled on the wrong CPU. The oops -output confirms it: - - CPU: 0 - Comm: watchdog/130 - -The problem is that we aren't ensuring the CPU active and online bits are set -before allowing the master to continue on. The master unparks the secondary -CPUs kthreads and the scheduler looks for a CPU to run on. It calls -select_task_rq and realises the suggested CPU is not in the cpus_allowed -mask. It then ends up in select_fallback_rq, and since the active and -online bits aren't set we choose some other CPU to run on. - -Signed-off-by: Anton Blanchard -Signed-off-by: Michael Ellerman -Signed-off-by: Greg Kroah-Hartman - ---- - arch/powerpc/kernel/smp.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/smp.c -+++ b/arch/powerpc/kernel/smp.c -@@ -700,7 +700,6 @@ void start_secondary(void *unused) - smp_store_cpu_info(cpu); - set_dec(tb_ticks_per_jiffy); - preempt_disable(); -- cpu_callin_map[cpu] = 1; - - if (smp_ops->setup_cpu) - smp_ops->setup_cpu(cpu); -@@ -739,6 +738,14 @@ void start_secondary(void *unused) - notify_cpu_starting(cpu); - set_cpu_online(cpu, true); - -+ /* -+ * CPU must be marked active and online before we signal back to the -+ * master, because the scheduler needs to see the cpu_online and -+ * cpu_active bits set. -+ */ -+ smp_wmb(); -+ cpu_callin_map[cpu] = 1; -+ - local_irq_enable(); - - cpu_startup_entry(CPUHP_ONLINE); diff --git a/queue-3.18/series b/queue-3.18/series index d6da9c6265a..7a965ee9bcc 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -25,7 +25,6 @@ asoc-dwc-ensure-fifos-are-flushed-to-prevent-channel-swap.patch ktest-fix-make_min_config-to-handle-new-assign_configs-call.patch powerpc-fix-bad-null-pointer-check-in-udbg_uart_getc_poll.patch powerpc-book3s-fix-partial-invalidation-of-tlbs-in-mce-code.patch -powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch powerpc-powernv-switch-off-mmu-before-entering-nap-sleep-rvwinkle-mode.patch powerpc-perf-hv-24x7-use-per-cpu-page-buffer.patch powerpc-add-little-endian-flag-to-syscall_get_arch.patch -- 2.47.3