From owner-freebsd-arch@FreeBSD.ORG Mon Jan 8 19:20:21 2007 Return-Path: X-Original-To: freebsd-arch@freebsd.org Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D0C8916A47B for ; Mon, 8 Jan 2007 19:20:21 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.freebsd.org (Postfix) with ESMTP id 4F04813C44C for ; Mon, 8 Jan 2007 19:20:21 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.6/8.13.6) with ESMTP id l08JKDdf068399; Mon, 8 Jan 2007 14:20:14 -0500 (EST) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-arch@freebsd.org Date: Mon, 8 Jan 2007 11:19:38 -0500 User-Agent: KMail/1.9.1 References: <20070106191401.GC8574@heave.ugcs.caltech.edu> <10319.1168112909@critter.freebsd.dk> <20070106213651.GD46094@hoeg.nl> In-Reply-To: <20070106213651.GD46094@hoeg.nl> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200701081119.39163.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Mon, 08 Jan 2007 14:20:15 -0500 (EST) X-Virus-Scanned: ClamAV 0.88.3/2424/Mon Jan 8 11:46:49 2007 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.2 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00, DATE_IN_PAST_03_06 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: Poul-Henning Kamp , Ed Schouten Subject: Re: Request for PTY/devfs changes X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jan 2007 19:20:21 -0000 On Saturday 06 January 2007 16:36, Ed Schouten wrote: > * Poul-Henning Kamp wrote: > > It doesn't even work to send a "this if for a create" flag along > > for the dev_clone, because another process might race in and do > > something silly before we get to that level. > > Sorry - I can't quite understand this. You mean a situation where two > threads perform an open() on the same filename at the same time could > cause two pty's to be allocated with the same name? But how is that > covered at this moment when two threads perform a stat() or open() at > the same time? devfs doesn't seem to handle any of this for you at all, forcing each bit of code that uses dev_clone to manage all this itself. :( When a device is opened you can mark it as opened. Perhaps you can have a callout that periodically checks to see if there are any "orphans" created due to a stat() and if so schedule a task on a taskqueue to purge them. I need to figure out something sane for /dev/ipmi0 before I can turn on cloning there myself. -- John Baldwin