Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jun 2001 08:48:18 +0200
From:      Wilko Bulte <wkb@freebie.xs4all.nl>
To:        Matthew Jacob <mjacob@feral.com>
Cc:        Andrew Gallatin <gallatin@cs.duke.edu>, wilko@FreeBSD.ORG, freebsd-alpha@FreeBSD.ORG, jhb@FreeBSD.ORG
Subject:   Re: followup on 8 way SMP pani
Message-ID:  <20010613084818.A10232@freebie.xs4all.nl>
In-Reply-To: <Pine.BSF.4.21.0106122331460.39150-100000@beppo.feral.com>; from mjacob@feral.com on Tue, Jun 12, 2001 at 11:33:38PM -0700
References:  <Pine.BSF.4.21.0106121858250.39150-100000@beppo.feral.com> <Pine.BSF.4.21.0106122331460.39150-100000@beppo.feral.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jun 12, 2001 at 11:33:38PM -0700, Matthew Jacob wrote:

Not to worry. The 8 way box is going to be powered down tomorrow for
moving it to another building. I don't expect it to be back /me having the
time until end of next week (earliest).


Wilko

> 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      <v0=0x0,a0=0x6>
> 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>
> > >  > > <s1=0xfffffc0000785138,s0=0x0>
> > >  > > 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
> > 
---end of quoted text---

-- 
|   / o / /  _  	 Arnhem, The Netherlands    	email: wilko@freebsd.org
|/|/ / / /( (_) Bulte	 				http://www.freebsd.org 	

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010613084818.A10232>