lkml.org 
[lkml]   [2012]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Linux 3.4-rc7
On 05/14/2012 01:38 AM, John David Anglin wrote:

> On 13-May-12, at 3:56 PM, Srivatsa S. Bhat wrote:
>
>> The regression was introduced in the 3.4 merge window itself (by commit
>> 5fbd036b55 "sched: Cleanup cpu_active madness").
>>
>> Links to the original posting:
>> PA_RISC: http://marc.info/?l=linux-parisc&m=133241790810604&w=2
>
>
> If I had the above change, I get
>
> CHK include/generated/compile.h
> CC arch/parisc/kernel/smp.o
> arch/parisc/kernel/smp.c: In function 'smp_cpu_init':
> arch/parisc/kernel/smp.c:300:2: error: implicit declaration of function
> 'notify_cpu_starting' [-Werror=implicit-function-declaration]
> cc1: some warnings being treated as errors
> make[1]: *** [arch/parisc/kernel/smp.o] Error 1
>


Sorry about that. I neither have the hardware nor the toolchain
to test it. I guess this problem doesn't exist for mn10300 since it
already includes linux/cpu.h when CONFIG_HOTPLUG_CPU=y

Does the below updated patch help for PA-RISC?

----
From: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
parisc/CPU hotplug: Add missing call to notify_cpu_starting()

The scheduler depends on receiving the CPU_STARTING notification, without
which we end up into a lot of trouble. So add the missing call to
notify_cpu_starting() in the bringup code.

Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
---
arch/parisc/kernel/smp.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c
index 0bb1d63..4dc7b79 100644
--- a/arch/parisc/kernel/smp.c
+++ b/arch/parisc/kernel/smp.c
@@ -31,6 +31,7 @@
#include <linux/delay.h>
#include <linux/bitops.h>
#include <linux/ftrace.h>
+#include <linux/cpu.h>

#include <linux/atomic.h>
#include <asm/current.h>
@@ -295,8 +296,13 @@ smp_cpu_init(int cpunum)

printk(KERN_CRIT "CPU#%d already initialized!\n", cpunum);
machine_halt();
- }
+ }
+
+ notify_cpu_starting(cpunum);
+
+ ipi_call_lock();
set_cpu_online(cpunum, true);
+ ipi_call_unlock();

/* Initialise the idle task for this CPU */
atomic_inc(&init_mm.mm_count);


\
 
 \ /
  Last update: 2012-05-13 23:01    [from the cache]
©2003-2011 Jasper Spaans