OSDN Git Service
(root)
/
uclinux-h8
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
27257fc
)
xen/smp: Fix bringup bug in AP code.
author
Konrad Rzeszutek Wilk
<konrad.wilk@oracle.com>
Wed, 21 Mar 2012 17:03:45 +0000
(13:03 -0400)
committer
Konrad Rzeszutek Wilk
<konrad.wilk@oracle.com>
Thu, 22 Mar 2012 15:36:54 +0000
(11:36 -0400)
The CPU hotplug code has now a callback to help bring up the CPU.
Without the call we end up getting:
BUG: soft lockup - CPU#0 stuck for 29s! [migration/0:6]
Modules linked in:
CPU ] Pid: 6, comm: migration/0 Not tainted
3.3.0upstream-01180-ged378a5
#1 Dell Inc. PowerEdge T105 /0RR825
RIP: e030:[<
ffffffff810d3b8b
>] [<
ffffffff810d3b8b
>] stop_machine_cpu_stop+0x7b/0xf0
RSP: e02b:
ffff8800ceaabdb0
EFLAGS:
00000293
.. snip..
Call Trace:
[<
ffffffff810d3b10
>] ? stop_one_cpu_nowait+0x50/0x50
[<
ffffffff810d3841
>] cpu_stopper_thread+0xf1/0x1c0
[<
ffffffff815a9776
>] ? __schedule+0x3c6/0x760
[<
ffffffff815aa749
>] ? _raw_spin_unlock_irqrestore+0x19/0x30
[<
ffffffff810d3750
>] ? res_counter_charge+0x150/0x150
[<
ffffffff8108dc76
>] kthread+0x96/0xa0
[<
ffffffff815b27e4
>] kernel_thread_helper+0x4/0x10
[<
ffffffff815aacbc
>] ? retint_restore_ar
Thix fixes it.
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/xen/smp.c
patch
|
blob
|
history
diff --git
a/arch/x86/xen/smp.c
b/arch/x86/xen/smp.c
index
449f868
..
240def4
100644
(file)
--- a/
arch/x86/xen/smp.c
+++ b/
arch/x86/xen/smp.c
@@
-75,8
+75,14
@@
static void __cpuinit cpu_bringup(void)
xen_setup_cpu_clockevents();
+ notify_cpu_starting(cpu);
+
+ ipi_call_lock();
set_cpu_online(cpu, true);
+ ipi_call_unlock();
+
this_cpu_write(cpu_state, CPU_ONLINE);
+
wmb();
/* We can take interrupts now: we're officially "up". */