Re: Panic 2.6.24-3 NMI Watchdog detected LOCKUP on CPU 0

From: Ingo Molnar
Date: Mon Mar 03 2008 - 08:23:26 EST



* Ed Tomlinson <edt@xxxxxx> wrote:

> Thomas,
>
> I have booted many times over the weekend. I've yet to trigger the
> watchdog. Since I used to see problems in 1 in 3 or 4 boots, I think
> you fixed the problem with patch below.

thanks for testing it.

Stable Team, please consider the post-2.6.24 commit below for -stable.

Ingo

--------------------->
commit 3d97775a80a03013abe1fd681620925f884ad18a
Author: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
Date: Wed Jan 30 13:33:00 2008 +0100

x86: move out tick_nohz_stop_sched_tick() call from the loop

Move out tick_nohz_stop_sched_tick() call from the loop in cpu_idle
same as 32-bit version.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 78d8006..a0130eb 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -170,14 +170,13 @@ void cpu_idle(void)
current_thread_info()->status |= TS_POLLING;
/* endless idle loop with no priority at all */
while (1) {
+ tick_nohz_stop_sched_tick();
while (!need_resched()) {
void (*idle)(void);

if (__get_cpu_var(cpu_idle_state))
__get_cpu_var(cpu_idle_state) = 0;

- tick_nohz_stop_sched_tick();
-
rmb();
idle = pm_idle;
if (!idle)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/