From owner-freebsd-alpha Tue Jun 12 18: 3:22 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id D97EF37B408; Tue, 12 Jun 2001 18:03:18 -0700 (PDT) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id VAA24368; Tue, 12 Jun 2001 21:03:18 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.3/8.9.1) id f5D12mc16840; Tue, 12 Jun 2001 21:02:48 -0400 (EDT) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15142.48056.299034.909499@grasshopper.cs.duke.edu> Date: Tue, 12 Jun 2001 21:02:48 -0400 (EDT) To: wilko@freebsd.org Cc: freebsd-alpha@freebsd.org, jhb@freebsd.org Subject: Re: followup on 8 way SMP pani In-Reply-To: <20010613003136.A7905@freebie.xs4all.nl> References: <20010613003136.A7905@freebie.xs4all.nl> X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid 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 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