From owner-freebsd-current Thu Apr 5 14:42:18 2001 Delivered-To: freebsd-current@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id 0C42B37B505; Thu, 5 Apr 2001 14:42:09 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.2/8.11.2) with ESMTP id f35LfwG88564; Thu, 5 Apr 2001 14:41:58 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: Date: Thu, 05 Apr 2001 14:41:29 -0700 (PDT) From: John Baldwin To: John Baldwin Subject: RE: selwakeup() Cc: Richard Todd , current@FreeBSD.org, Garrett Wollman Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 05-Apr-01 John Baldwin wrote: > > On 05-Apr-01 Garrett Wollman wrote: >> <> said: >> >>> If I'm reading this backtrace right, the thread handling the sound >>> hardware called selwakeup() (frame #19). This called pfind() (frame >>> #18), which tries to lock allproc. >> >> selwakeup() shouldn't need to call pfind(). Because the process table >> is in type-stable memory, it should be sufficient to keep a reference >> to the caller's proc structure and check to see whether its pid is the >> same one as in the selinfo. The locking that selwakeup() already >> needs to do should be sufficient to avoid a race. >> >> (In 4.4BSD, process structures were not type-stable so this technique >> could not have been used.) > > There are probably several other places that pfind is called that this check > should also be adequate for as well. The ones in syscons for example. As a safety check we should probably zero the pid right before zfree()'ing a proc in wait() however, so that a stale pointer to a free'd process doesn't have a valid pid if we do this. >> -GAWollman -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message