From owner-freebsd-hackers@FreeBSD.ORG Wed Jul 11 21:14:28 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 75F3C16A46E for ; Wed, 11 Jul 2007 21:14:28 +0000 (UTC) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by mx1.freebsd.org (Postfix) with ESMTP id 48E2413C45B for ; Wed, 11 Jul 2007 21:14:28 +0000 (UTC) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (localhost [127.0.0.1]) by apollo.backplane.com (8.13.8/8.13.7) with ESMTP id l6BLERik061934; Wed, 11 Jul 2007 14:14:27 -0700 (PDT) Received: (from dillon@localhost) by apollo.backplane.com (8.13.8/8.13.4/Submit) id l6BLERAF061933; Wed, 11 Jul 2007 14:14:27 -0700 (PDT) Date: Wed, 11 Jul 2007 14:14:27 -0700 (PDT) From: Matthew Dillon Message-Id: <200707112114.l6BLERAF061933@apollo.backplane.com> To: Julian Elischer References: <46930106.3040503@gmail.com> <20070710123634.GD1194@britannica.bec.de> <4693C77E.7070806@elischer.org> Cc: freebsd-hackers@freebsd.org 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: Wed, 11 Jul 2007 21:14:28 -0000 We added it basically because doing all the junk described in previous postings in this thread in userland is a ridiculously huge eyesore that doesn't scale and doesn't make sense when 5 minutes of programming nets you a shiny new system call which does it all for you. If you are worried about optimizing it (which kinda implies a system call anyhow since you aren't doing a context switch for each descriptor), worry about optimizing the kernel implementation of the system call rather then optimizing the unoptimizable userland that eats 300ns+ per descriptor to do the close() instead of the 10ns/descriptor that it takes the kernel to do the close(). -Matt