From owner-freebsd-alpha Mon Apr 23 9:33:48 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from peter3.wemm.org (c1315225-a.plstn1.sfba.home.com [65.0.135.147]) by hub.freebsd.org (Postfix) with ESMTP id 0F3C737B424; Mon, 23 Apr 2001 09:33:43 -0700 (PDT) (envelope-from peter@wemm.org) Received: from overcee.netplex.com.au (overcee.wemm.org [10.0.0.3]) by peter3.wemm.org (8.11.0/8.11.0) with ESMTP id f3NGXhM54063; Mon, 23 Apr 2001 09:33:43 -0700 (PDT) (envelope-from peter@wemm.org) Received: from wemm.org (localhost [127.0.0.1]) by overcee.netplex.com.au (Postfix) with ESMTP id 8E38638FC; Mon, 23 Apr 2001 09:33:43 -0700 (PDT) (envelope-from peter@wemm.org) X-Mailer: exmh version 2.3.1 01/18/2001 with nmh-1.0.4 To: Andrew Gallatin Cc: John Baldwin , alpha@FreeBSD.ORG Subject: Re: SMP is stable now. Whee! :) In-Reply-To: <15076.11793.428586.604450@grasshopper.cs.duke.edu> Date: Mon, 23 Apr 2001 09:33:43 -0700 From: Peter Wemm Message-Id: <20010423163343.8E38638FC@overcee.netplex.com.au> Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Andrew Gallatin wrote: > > Peter Wemm writes: > > I just fired it up on a UP2000+ w/ dual 833MHz cpus (4MB DDR L2 cache each ) > > and it was rather uneventful. > > > > That is.. it was until I typed 'make -j4 world': > > lock order reversal > > 1st clk last acquired @ ../../alpha/alpha/clock.c:569 > > 2nd 0xfffffc00006ce728 smp rendezvous @ ../../alpha/alpha/mp_machdep.c:60 5 > > 3rd 0xfffffc00006d9870 clk @ ../../alpha/alpha/clock.c:390 > > [hang] > > > > This is with alpha.smp.patch, plus the stuff recent commits. I had to cha nge > > some #idef's into #ifdefs in alpha/trap.c though. > > Huh? idef? Where? > > Can you build with WITNESS_DDB and KTR, with the KTR_MASK set to > something like -1 and dump the ktr buffer when this happens? > > Drew In John's alpha.smp.patch: @@ -704,11 +714,22 @@ u_quad_t sticks; u_int64_t args[10]; /* XXX */ u_int hidden = 0, nargs; +#idef SMP + critical_t s; +#endif /* * Find our per-cpu globals. */ +#idef SMP + s = critical_enter(); +#endif globalp = (struct globaldata *) alpha_pal_rdval(); + p = curproc; +#idef SMP + p->p_md.md_kernnest++; + critical_exit(s); +#endif mtx_lock(&Giant); framep->tf_regs[FRAME_TRAPARG_A0] = 0; I'm not sure how John compiled that... Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message