From owner-freebsd-arch Tue Jan 22 19:30:30 2002 Delivered-To: freebsd-arch@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id A028237B405 for ; Tue, 22 Jan 2002 19:30:28 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g0N3Tro03179; Tue, 22 Jan 2002 19:29:53 -0800 (PST) (envelope-from dillon) Date: Tue, 22 Jan 2002 19:29:53 -0800 (PST) From: Matthew Dillon Message-Id: <200201230329.g0N3Tro03179@apollo.backplane.com> To: Julian Elischer Cc: Alfred Perlstein , arch@FreeBSD.ORG Subject: Re: STOP and SLEEP in the kernel References: Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG What really freaks me out is that if t/msleep() is called with PCATCH, it appears to process a STOP signal right then and there and actually stop the process rather then return. t/msleep() is called all over the place with PCATCH while holding vnode and other lockmgr locks so a ^Z at the wrong point could deadlock the system. "That can't be right" I said to myself and to Julian, but neither of us can see where the code might do something else. As far as I can tell the existing -stable and -current code *will* in fact STOP the process while potentially holding (a vnode lock for example). There is a whole lot of code, especially in NFS, that uses PCATCH. It can't be right. -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message