From owner-freebsd-doc@FreeBSD.ORG Wed Dec 29 08:40:27 2004 Return-Path: Delivered-To: freebsd-doc@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4047916A4CE for ; Wed, 29 Dec 2004 08:40:27 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 27CCC43D55 for ; Wed, 29 Dec 2004 08:40:27 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.1/8.13.1) with ESMTP id iBT8eREq017632 for ; Wed, 29 Dec 2004 08:40:27 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.1/8.13.1/Submit) id iBT8eQuf017631; Wed, 29 Dec 2004 08:40:26 GMT (envelope-from gnats) Date: Wed, 29 Dec 2004 08:40:26 GMT Message-Id: <200412290840.iBT8eQuf017631@freefall.freebsd.org> To: freebsd-doc@FreeBSD.org From: Giorgos Keramidas Subject: Re: docs/75571: man page for sx(9) is misleading X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Giorgos Keramidas List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Dec 2004 08:40:27 -0000 The following reply was made to PR docs/75571; it has been noted by GNATS. From: Giorgos Keramidas To: bug-followup@freebsd.org Cc: Subject: Re: docs/75571: man page for sx(9) is misleading Date: Wed, 29 Dec 2004 10:37:13 +0200 On 2004-12-28 13:55, Darren Reed wrote: > > According to discussion on freebsd mailing lists, it is not possible > to hold an sx lock when you want a mtx lock. This should be documented. As far as I can tell, by looking at kern_sx.c and sys/sx.h, this is because the sx lock initialization uses an mtxpool for the mutex used to serialize access to the internal sx lock data. Leaf locks may be used in operations that msleep() but there can be only one of them in each lock path and no other lock can be obtained after them. This is sort of implied by the SEE ALSO reference of mtx_pool(9), but we should probably state it explicitly in CONTEXT. %%% Index: sx.9 =================================================================== RCS file: /home/ncvs/src/share/man/man9/sx.9,v retrieving revision 1.29 diff -u -r1.29 sx.9 --- sx.9 11 Jul 2004 16:08:25 -0000 1.29 +++ sx.9 28 Dec 2004 23:28:22 -0000 @@ -196,6 +196,11 @@ A thread may hold a shared or exclusive lock on an .Nm lock while sleeping. +The +.Nm +locks are implemented using +.Xr mtxpool 9 +shared leaf locks, so they should always be the last lock obtained. .Sh SEE ALSO .Xr condvar 9 , .Xr mtx_pool 9 , %%%