Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Sep 2000 23:12:26 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        John Baldwin <jhb@pike.osd.bsdi.com>
Cc:        alpha@freebsd.org
Subject:   Re: Mutex's aren't recursing
Message-ID:  <Pine.BSF.4.21.0009122309450.86297-100000@salmon.nlsystems.com>
In-Reply-To: <200009122143.OAA08606@pike.osd.bsdi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 12 Sep 2000, John Baldwin wrote:

> Doug Rabson wrote:
> > I sent you some mail yesterday about this. I got the constraints wrong for
> > the inline assembler in atomic_cmpset. I disassembled some of the code in
> > interrupt.c which is trying to enter the mutex. You can clearly see that
> > it is misusing t1 as both an input and output to the inline.
> 
> Thanks!  I'll try this out.  Also, I just discovered that swtch.s didn't import
> sched_lock, so cpu_switch was modifying a private copy of sched_lock instead
> of the global variable (I think).  I'll have some feedback on this in just a
> sec.

It doesn't work - I'm still working on it. I have a new version of cmpset
which does appear to work for recursion but oddly makes the kernel panic
almost instantly we try to get into single user mode. I think its
probably right after a context switch since I can see
mi_switch() releasing Giant a few times but not regaining it in the new
process. I'm in the middle of building a new kernel with more KTRs
enabled.

-- 
Doug Rabson				Mail:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 20 8348 3944




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?Pine.BSF.4.21.0009122309450.86297-100000>