Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Aug 2001 11:01:35 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        imp@FreeBSD.org, "David O'Brien" <obrien@FreeBSD.org>, alpha@FreeBSD.org
Subject:   Re: today's kernel + JHB's trap.c patch is *evil*
Message-ID:  <XFMail.010820110135.jhb@FreeBSD.org>
In-Reply-To: <15232.26016.723068.885342@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help

On 20-Aug-01 Andrew Gallatin wrote:
> 
> John Baldwin writes:
>  > As to why the 4100 hasn't seen this, it may be that the slower CPU's are
>  > preventing this race from happening, or that 21164's use a stricter memory
>  > ordering than 21264's.  I've seen similar issues where my dual P3 600
> would
>  > have problems when my dual PPro 200 wouldn't.
>  > 
> 
> 21264s are the first alpha to do out of order execution.  Perhaps this
> has something to do with it.  
> 
> FWIW, my UP1000 that I gripe about -current stability problems on is a
> 21264 also..

Actually, this panic in question may be due to taking a trap in
mtx_unlock_sleep() to mark a page as being referenced or somesuch and the trap
would've released Giant, and thus when we resumed in mtx_unlock_sleep(), we
were releasing a lock we didn't hold, which would lead to this panic.  After I
got a chance to relax and get away from computers a bit this weekend, I sort of
figured that out.  The problem with the mb's being wrong is that for that to
have caused breakage, the process would have had to migrate across CPU's a few
times and then still read stale data.  However, all the mb's in lock operations
for sched_lock would have prevented that.  Also, mb's aren't used to manage
cache coherency directly (which was what my mb theory depended on sort of),
that is handled by snooping in the hardware.  mb's just push data out of the
CPU and onto the cache where the snooping can take effect.

In summary, I'm now not sure that mtx_owned() is busted.  If it was, I think we
would have seen a _lot_ of bogus mtx_assert() panics by now.  I guess my brain
was just frazzled and stressed last Friday.

> Drew

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  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?XFMail.010820110135.jhb>