From owner-freebsd-threads@FreeBSD.ORG Thu Apr 17 23:25:18 2003 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8235137B401 for ; Thu, 17 Apr 2003 23:25:18 -0700 (PDT) Received: from exchhz01.viatech.com.cn (ip-167-164-97-218.anlai.com [218.97.164.167]) by mx1.FreeBSD.org (Postfix) with ESMTP id D6C3743F85 for ; Thu, 17 Apr 2003 23:25:14 -0700 (PDT) (envelope-from davidxu@freebsd.org) Received: from davidw2k (ip-240-1-168-192.rev.dyxnet.com [192.168.1.240]) by exchhz01.viatech.com.cn with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id HLDQQVML; Fri, 18 Apr 2003 14:11:01 +0800 Message-ID: <005b01c30573$821cf6a0$f001a8c0@davidw2k> From: "David Xu" To: "Daniel Eischen" References: Date: Fri, 18 Apr 2003 14:26:55 +0800 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300 cc: freebsd-threads@freebsd.org Subject: Re: libpthread patch X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Apr 2003 06:25:18 -0000 ----- Original Message -----=20 From: "Daniel Eischen" To: "David Xu" Cc: Sent: Friday, April 18, 2003 2:12 PM Subject: Re: libpthread patch > On Fri, 18 Apr 2003, David Xu wrote: >=20 > >=20 > > ----- Original Message -----=20 > > From: "Juli Mallett" > > To: "David Xu" > > Cc: "Daniel Eischen" ; = > > Sent: Friday, April 18, 2003 2:04 PM > > Subject: Re: libpthread patch > >=20 > >=20 > > > * De: David Xu [ Data: 2003-04-18 ] > > > [ Subjecte: Re: libpthread patch ] > > > > > There are a few issues we've got to go over, as well as > > > > > looking closely at any locking order problems. > > > > >=20 > > > > I have ever tried to port some kernel code to userland (e.g > > > > mutex and witness), but now they were left there for > > > > several days without be touched. > > >=20 > > > This seems like overkill, in fact, it is by definition. If you > > > want some primitive private-locks-only mutex tracing/auditing, > > > I've done a bit of that and could give you some hints. Using the > > > casuptr facility introduced by thr may be a good idea, no? It > > > is known to work, and is relatively un-complex? Or am I missing > > > something? > >=20 > > I want to use code to detect LOR not just human eyes, I can accept > > any reasonable method. >=20 > We can do that now with the locks that I have in place. > Each consumer of a lock has a "lock user". Threads and > KSEs have an array of 3 lock users; probably 2 is enough > because I don't think we need more than a nesting of 2. > When you decrement the lock user index when releasing > a lock, you make sure that the lock being released > matches the one owned. In fact, I implemented it this > way so you couldn't possible have lock order reversals. > The locks will not work if you reverse them. >=20 witeness in kernel records locking order, not lock instance. for example, at one time, code uses locking order mutex1 mutex2, and release them, next time if another code locks them in the order mutex2 mutex1, it would detect it. > --=20 > Dan Eischen >=20 > _______________________________________________ > freebsd-threads@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-threads > To unsubscribe, send any mail to = "freebsd-threads-unsubscribe@freebsd.org"