From owner-freebsd-hackers@FreeBSD.ORG Sat Jul 7 07:58:23 2007 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E727616A421 for ; Sat, 7 Jul 2007 07:58:22 +0000 (UTC) (envelope-from xistence@0x58.com) Received: from mailexchange.osnn.net (1e.66.5646.static.theplanet.com [70.86.102.30]) by mx1.freebsd.org (Postfix) with SMTP id 9FE5413C469 for ; Sat, 7 Jul 2007 07:58:22 +0000 (UTC) (envelope-from xistence@0x58.com) Received: (qmail 11279 invoked by uid 0); 7 Jul 2007 07:27:56 -0000 Received: from unknown (HELO ?10.10.10.22?) (xistence@0x58.com@72.208.132.56) by mailexchange.osnn.net with SMTP; 7 Jul 2007 07:27:56 -0000 Mime-Version: 1.0 (Apple Message framework v752.3) In-Reply-To: <468E7463.8020803@elischer.org> References: <20070705122650.GE1302@britannica.bec.de> <468E16E6.6030608@delphij.net> <20070706112453.GA3217@hoeg.nl> <468E7007.5050607@elischer.org> <20070706174321.M17956@fledge.watson.org> <468E7463.8020803@elischer.org> Content-Type: multipart/signed; micalg=sha1; boundary=Apple-Mail-1--672140753; protocol="application/pkcs7-signature" Message-Id: From: Bert JW Regeer Date: Sat, 7 Jul 2007 00:31:29 -0700 To: FreeBSD Hackers X-Mailer: Apple Mail (2.752.3) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Re: add closefrom() call X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Jul 2007 07:58:23 -0000 --Apple-Mail-1--672140753 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed On Jul 6, 2007, at 9:57 AM, Julian Elischer wrote: > Robert Watson wrote: >> On Fri, 6 Jul 2007, Julian Elischer wrote: >>> Ed Schouten wrote: >>>> * LI Xin wrote: >>>>> Here is my implementation for FreeBSD. Some difference between >>>>> my and DragonFly's implementation: >>>>> >>>>> - closefrom(-1) would be no-op on DragonFly, my version would >>>>> close all open files (From my understanding of OpenSolaris's >>>>> userland implementation, this is Solaris's behavior). >>>>> - my version closefrom(very_big_fd) would result in EBADF. I >>>>> am not very sure whether this is correct, but it does not hurt >>>>> for applications that thinks closefrom() would return void. >>>> >>>> Wouldn't it be better to just implement it through fcntl() and >>>> implement closefrom() in libc? >>> >>> that's a possibility but I personally thing the huge difference >>> in efficiency makes it worth putting it in the kernel. Quite a >>> few programs I know of could really help their startup time with >>> this as the first thing they do is "close the first 2000 file >>> descriptors. >> The Solaris implementation appears to implement two strategies: >> (1) If procfs is mounted, list the fd directory to get a list of >> open fds, >> then close those by number. >> (2) If procfs is not mounted, query the number of open fds using >> the resource >> limit interface, then sequentially close until the right >> number close. >> Hence my question as to whether there's actually a big benefit or >> not -- do we think closefrom() is a performance-critical function? > > > It's one of those things where it's so simple to do it that it > hardly seems worth arguing about the colour, or even whether colour > is spelled color or colour. > >> Robert N M Watson >> Computer Laboratory >> University of Cambridge > So guys, where can I pick up my bike-shed? Bert JW Regeer --Apple-Mail-1--672140753--