From owner-freebsd-current Sun Mar 18 16: 0:34 2001 Delivered-To: freebsd-current@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id 6D62C37B71A; Sun, 18 Mar 2001 16:00:30 -0800 (PST) (envelope-from bde@zeta.org.au) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id LAA25670; Mon, 19 Mar 2001 11:00:14 +1100 Date: Mon, 19 Mar 2001 10:59:55 +1100 (EST) From: Bruce Evans X-Sender: bde@besplex.bde.org To: David Malone Cc: Dag-Erling Smorgrav , current@FreeBSD.ORG, jhb@FreeBSD.ORG, jake@FreeBSD.ORG, Ian Dowse Subject: Re: Interesting backtrace... In-Reply-To: <20010318225707.A2140@walton.maths.tcd.ie> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sun, 18 Mar 2001, David Malone wrote: > Presumably what is happening is i586_bzero begins and finds that > PCPU(NPXPROC) is not zero, so it decides to preserve the fpu > registers. Then something interrupts it, but doesn't restore > PCPU(NPXPROC). When i586_bzero returns it uses the first 8 bytes > of the fpu registers for its intstruction pointer and stack pointer > and goes boom. i586_bzero is missing the hack of disabling interrupts to prevent problems with npxproc getting switched, and it uses its own funky locking which hasn't been regraded for SMPng, so it is quite likely to be buggy. K6-2's aren't really i586's and i586_bzero should never be used for them (generic bzero is faster), but there is apparently another bug that may cause them to be used. From des's dmesg output: > i586_bzero() bandwidth = -1980152482 bytes/sec ^ > bzero() bandwidth = 129299198 bytes/sec i586_bzero gets used because negative bandwidths are significantly smaller than positive ones, so plain bzero is faster according to this message, but whatever the overflow apparently causes other bad things. npx.c already has one "fix" for the overflow problem. The problem is may be that clocks don't work early any more. Similarly for the i586-optimized bcopy and copyin/out (the bandwidth test for bzero controls them all). Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message