From owner-freebsd-current Fri Sep 24 16:46:40 1999 Delivered-To: freebsd-current@freebsd.org Received: from midten.fast.no (midten.fast.no [195.139.251.11]) by hub.freebsd.org (Postfix) with ESMTP id D2D9B14D5A for ; Fri, 24 Sep 1999 16:46:36 -0700 (PDT) (envelope-from tegge@fast.no) Received: from fast.no (IDENT:tegge@midten.fast.no [195.139.251.11]) by midten.fast.no (8.9.3/8.9.3) with ESMTP id BAA38564; Sat, 25 Sep 1999 01:45:44 +0200 (CEST) Message-Id: <199909242345.BAA38564@midten.fast.no> To: mjacob@feral.com Cc: freebsd-current@FreeBSD.ORG Subject: Re: DDB && SMP? From: Tor.Egge@fast.no In-Reply-To: Your message of "Fri, 24 Sep 1999 15:19:58 -0700 (PDT)" References: X-Mailer: Mew version 1.70 on Emacs 19.34.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_Sep_25_01:45:29_1999)--" Content-Transfer-Encoding: 7bit Date: Sat, 25 Sep 1999 01:45:43 +0200 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG ----Next_Part(Sat_Sep_25_01:45:29_1999)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit > > I just ran across this: > > Debugger("isp_attach") > Stopped at Debugger+0x37: movl $0,in_Debugger > db> cont > whoa, other_cpus: 0x00000002, stopped_cpus: 0x00000000 > panic: stop_cpus() failed > mp_lock = 00000002; cpuid = 0; lapic.id = 00000000 > Automatic reboot in 15 seconds - press a key on the console to abort > > > Whuffo? The kernel probably entered the debugger after the AP had been started but before it accepts any interrupts. - Tor Egge ----Next_Part(Sat_Sep_25_01:45:29_1999)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Index: sys/i386/i386/db_interface.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/db_interface.c,v retrieving revision 1.46 diff -u -r1.46 db_interface.c --- db_interface.c 1999/08/28 00:43:42 1.46 +++ db_interface.c 1999/09/24 23:43:34 @@ -167,7 +167,7 @@ #endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */ /* Restart all the CPUs we previously stopped */ - if (stopped_cpus != other_cpus) { + if (stopped_cpus != other_cpus && smp_started != 0) { db_printf("whoa, other_cpus: 0x%08x, stopped_cpus: 0x%08x\n", other_cpus, stopped_cpus); panic("stop_cpus() failed"); Index: sys/i386/include/smp.h =================================================================== RCS file: /home/ncvs/src/sys/i386/include/smp.h,v retrieving revision 1.47 diff -u -r1.47 smp.h --- smp.h 1999/08/28 00:44:25 1.47 +++ smp.h 1999/09/24 23:39:47 @@ -177,6 +177,7 @@ /* global data in init_smp.c */ extern int invltlb_ok; extern int smp_active; +extern int smp_started; extern volatile int smp_idle_loops; #endif /* !LOCORE */ ----Next_Part(Sat_Sep_25_01:45:29_1999)---- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message