From owner-freebsd-alpha Tue Jun 12 23:33:51 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from beppo.feral.com (beppo.feral.com [192.67.166.79]) by hub.freebsd.org (Postfix) with ESMTP id CAAAD37B42F; Tue, 12 Jun 2001 23:33:41 -0700 (PDT) (envelope-from mjacob@feral.com) Received: from beppo (mjacob@beppo [192.67.166.79]) by beppo.feral.com (8.11.3/8.11.3) with ESMTP id f5D6Xcg39686; Tue, 12 Jun 2001 23:33:39 -0700 (PDT) (envelope-from mjacob@feral.com) Date: Tue, 12 Jun 2001 23:33:38 -0700 (PDT) From: Matthew Jacob Reply-To: mjacob@feral.com To: Andrew Gallatin Cc: wilko@FreeBSD.ORG, freebsd-alpha@FreeBSD.ORG, jhb@FreeBSD.ORG Subject: Re: followup on 8 way SMP pani In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org No, I likely *won't* be able to fix this today, as kernels built with the latest panic with: recursed on non-recursive lock (sleep mutex) mbuf free list lock @ ../../kern/uipc_mbuf.c:582 first acquired @ ../../kern/uipc_socket.c:875 panic: recurse cpuid = 0; panic Stopped at Debugger+0x34: zapnot v0,#0xf,a0 db> t Debugger() at Debugger+0x34 panic() at panic+0x178 witness_lock() at witness_lock+0x488 m_freem() at m_freem+0x4e8 soreceive() at soreceive+0x19dc recvit() at recvit+0x1a4 recvfrom() at recvfrom+0x9c syscall() at syscall+0x708 XentSys() at XentSys+0x64 --- syscall (29, FreeBSD ELF, recvfrom) --- --- user mode --- What I needed to fix for turbolaser is to clear the timer interrupt for all CPUs but the primary CPU- this is the TLINTRMASK{0,1} registers. But, stupid me, I upgraded my source first. -matt On Tue, 12 Jun 2001, Matthew Jacob wrote: > > Oh! I was really snoozing- many other things happening (mostly personal)! > > This should be easy to fix- let me look at this tomorrow. > > On Tue, 12 Jun 2001, Andrew Gallatin wrote: > > > > > Wilko Bulte writes: > > > On Mon, Jun 11, 2001 at 10:06:56AM +0000, Wilko Bulte wrote: > > > > > > Does this make any sense to anybody? Drew, you asked for a traceback? > > > > <...> > > > > > > trap entry = 0x2 (memory management fault) > > > > cpuid = 0 > > > > faulting va = 0x78 > > > > type = access violation > > > > cause = load instructon > > > > pc = 0xfffffc0000491ae4 > > > > ra = 0xfffffc0000491ba8 > > > > sp = 0xfffffc00008d9b90 > > > > usp = 0x0 > > > > curproc = 0xfffffc0000831288 > > > > pid = 0, comm = swapper > > > > > > > > Stopped at sync_other_counter+0x24: ldq s1,0x78(s0) <0x78> > > > > > > > > db> trace > > > > sync_other_counter() at sync_other_counter+0x24 > > > > tc_windup() at tc_windup+0x28 > > > > hardclock() at hardclock+0x1e8 > > > > handleclock() at handleclock+0x22c > > > > alpha_clock_interrupt() at alpha_clock_interrupt+0x68 > > > > interrupt() at interrupt+0xb8 > > > > XentIntlgp() at XentIntlgp+0x14 > > > > db> halt > > > > > > > > Yes, sorry I never replied. According to Matt, the turbolaser doesn't > > have an i8254 timecounter. And the alpha timecounter is never > > initialized in alpha/alpha/clock.c if ncpus>1, so you're taking a > > clock interrupt with no timecounter. Oops. No MP for TurboLasers > > right now, I guess. > > > > Here's the code in question: > > > > /* > > * XXX: TurboLaser doesn't have an i8254 counter. > > * XXX: A replacement is needed, and another method > > * XXX: of determining this would be nice. > > */ > > if (hwrpb->rpb_type != ST_DEC_21000) { > > tc_init(&i8254_timecounter); > > } > > > > if (ncpus == 1) { > > alpha_timecounter.tc_frequency = freq; > > tc_init(&alpha_timecounter); > > } > > > > I think there are bigger fish to fry right now, but this needs to be > > fixed. I'm not at all sure what to do, since I don't think that > > the cycle counters on multiple cpus are in sync.. > > > > Drew > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > with "unsubscribe freebsd-alpha" in the body of the message > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-alpha" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message