From owner-freebsd-arch@FreeBSD.ORG Wed Apr 16 16:56:37 2008 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DBB041065672; Wed, 16 Apr 2008 16:56:37 +0000 (UTC) (envelope-from pjd@garage.freebsd.pl) Received: from mail.garage.freebsd.pl (chello087206046210.chello.pl [87.206.46.210]) by mx1.freebsd.org (Postfix) with ESMTP id 18E8B8FC1A; Wed, 16 Apr 2008 16:56:36 +0000 (UTC) (envelope-from pjd@garage.freebsd.pl) Received: by mail.garage.freebsd.pl (Postfix, from userid 65534) id A5A8845B36; Wed, 16 Apr 2008 18:56:34 +0200 (CEST) Received: from localhost (chello087206046210.chello.pl [87.206.46.210]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.garage.freebsd.pl (Postfix) with ESMTP id F2C1F45684; Wed, 16 Apr 2008 18:56:27 +0200 (CEST) Date: Wed, 16 Apr 2008 18:56:12 +0200 From: Pawel Jakub Dawidek To: John Baldwin Message-ID: <20080416165612.GA31094@garage.freebsd.pl> References: <20071218092222.GA9695@freebsd.org> <200712201138.56423.jhb@freebsd.org> <20080412112019.GI45299@garage.freebsd.pl> <200804161014.41025.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="XsQoSWH+UP9D9v3l" Content-Disposition: inline In-Reply-To: <200804161014.41025.jhb@freebsd.org> User-Agent: Mutt/1.4.2.3i X-PGP-Key-URL: http://people.freebsd.org/~pjd/pjd.asc X-OS: FreeBSD 8.0-CURRENT i386 X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on mail.garage.freebsd.pl X-Spam-Level: X-Spam-Status: No, score=-2.6 required=3.0 tests=BAYES_00 autolearn=ham version=3.0.4 Cc: kib@freebsd.org, Roman Divacky , rwatson@freebsd.org, freebsd-arch@freebsd.org Subject: Re: final decision about *at syscalls 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: Wed, 16 Apr 2008 16:56:38 -0000 --XsQoSWH+UP9D9v3l Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Apr 16, 2008 at 10:14:40AM -0400, John Baldwin wrote: > On Saturday 12 April 2008 07:20:19 am Pawel Jakub Dawidek wrote: > > From what you write John, #1 is a better choice than #2. If you want to > > avoid races, you can pass already locked vnode. In case of file > > descriptors, if p_fd is not locked another thread can close and open > > different directory under the same descriptor number. >=20 > Did you read Robert's paper? Do you not realize that the kernel copying = data=20 > in from userland multiple times and having it change in between is very b= ug=20 > prone? Believe me I'm fully aware of the problems Robert described in his paper. With vnode approach where do you have more data copying between kernel and userland? File descriptor proposal works like this: userland openat(fd, path) kernel NDINIT_AT(&vp, path, fd); /* operate on vp */ Vnode proposal works this way: userland openat(fd, path) kernel dvp =3D file_descriptor_to_vnode(fd); NDINIT_AT(&vp, path, dvp); /* operate on vp */ --=20 Pawel Jakub Dawidek http://www.wheel.pl pjd@FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! --XsQoSWH+UP9D9v3l Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQFIBi+rForvXbEpPzQRAuQzAKCiBCGMz+eYtUMUlxOHAZ/h24jFsgCfXTso hh0WOhUPunmiEGxhJ/Do/Vs= =iqfy -----END PGP SIGNATURE----- --XsQoSWH+UP9D9v3l--