On Tue, 22 Jun 2004 14:54:43 -0700,
keith <[EMAIL PROTECTED]> wrote:
>linux 2.6.7-bk4
>kdb-v4.4-2.6.7-common-1
>kdb-v4.4-2.6.7-i386-1
>
>My issue is as follows...
> If I don't enable kdb everything works fine. When I enable and boot
>with KDB I fall into kdb when I bring the secondary cpus online. KDB
>claims it was entered via an NMI. Without kdb there are no nmis being
>registered by the system.
This debug patch should get you up and running, and tell you where the
nmi is coming from. Untested.
Index: linux/arch/i386/kernel/traps.c
===================================================================
--- linux.orig/arch/i386/kernel/traps.c Mon Jun 21 11:44:58 2004
+++ linux/arch/i386/kernel/traps.c Wed Jun 23 08:37:29 2004
@@ -508,7 +508,9 @@ static void unknown_nmi_error(unsigned c
}
#endif
#ifdef CONFIG_KDB
- (void)kdb(KDB_REASON_NMI, reason, regs);
+ // (void)kdb(KDB_REASON_NMI, reason, regs);
+ kdb_printf("unknown_nmi_error entered, reason %d, cpu %d\n",
+ reason, smp_processor_id());
#endif /* CONFIG_KDB */
printk("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n",
reason, smp_processor_id());
@@ -533,8 +535,16 @@ static void default_do_nmi(struct pt_reg
* Call the kernel debugger to see if this NMI is due
* to an KDB requested IPI. If so, kdb will handle it.
*/
- if (kdb_ipi(regs, do_ack_apic_irq)) {
- return;
+ // if (kdb_ipi(regs, do_ack_apic_irq)) {
+ // return;
+ // }
+ {
+ static int limit = 5;
+ if (limit) {
+ kdb_printf("default_do_nmi entered, reason %d, cpu %d\n",
+ reason, smp_processor_id());
+ --limit;
+ }
}
#endif /* defined(CONFIG_SMP) && defined(CONFIG_KDB) */
---------------------------
Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.