Re: 2.6.18-rt1

From: Ingo Molnar
Date: Wed Oct 18 2006 - 03:21:31 EST



* Dipankar Sarma <dipankar@xxxxxxxxxx> wrote:

> Sorry, I should have published my investigations long ago. I tracked
> this down (atleast the crash in my machine) to NMI interference with
> rcu_read_lock()/rcu_read_unlock(). We use those APIs from NMI context
> as well
> (default_do_nmi()->notify_die()->atomic_notifier_call_chain()).
>
> Can you try with nmi_watchdog=0 in the kernel command line ?
>
> Paul has an NMI-safe patch for rcupreempt which I am adopting and
> testing at the moment. If this works well, I will publish a new
> patchset.

spent some good time debugging this 2 weeks ago and added the fix below
to rt5, but i forgot to do the symmetric fix for x86_64...

Ingo

----------->
arch/i386/kernel/traps.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Index: linux/arch/i386/kernel/traps.c
===================================================================
--- linux.orig/arch/i386/kernel/traps.c
+++ linux/arch/i386/kernel/traps.c
@@ -716,9 +716,6 @@ static void default_do_nmi(struct pt_reg
reason = get_nmi_reason();

if (!(reason & 0xc0)) {
- if (notify_die(DIE_NMI_IPI, "nmi_ipi", regs, reason, 2, SIGINT)
- == NOTIFY_STOP)
- return;
#ifdef CONFIG_X86_LOCAL_APIC
/*
* Ok, so this is none of the documented NMI sources,
@@ -729,6 +726,9 @@ static void default_do_nmi(struct pt_reg
return;
}
#endif
+ if (notify_die(DIE_NMI_IPI, "nmi_ipi", regs, reason, 2, SIGINT)
+ == NOTIFY_STOP)
+ return;
unknown_nmi_error(reason, regs);
return;
}

-
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/