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>