Trouble with i386 KDB current and 2.6.7

Keith Owens kaos at sgi.com
Tue Jun 22 15:39:16 PDT 2004


On Tue, 22 Jun 2004 14:54:43 -0700, 
keith <kmannth at us.ibm.com> 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.


More information about the kdb mailing list