From owner-freebsd-fs@FreeBSD.ORG Thu Oct 18 07:33:41 2007 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2803C16A41B for ; Thu, 18 Oct 2007 07:33:41 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx1.freebsd.org (Postfix) with ESMTP id 6EBDC13C4B3; Thu, 18 Oct 2007 07:33:40 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <47170C54.6050502@FreeBSD.org> Date: Thu, 18 Oct 2007 09:33:40 +0200 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Ulf Lilleengen References: <20070816100526.GA31897@stud.ntnu.no> <20071017220948.GA4279@stud.ntnu.no> In-Reply-To: <20071017220948.GA4279@stud.ntnu.no> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-fs@freebsd.org Subject: Re: [PATCH] Make fdescfs MPSAFE X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Oct 2007 07:33:41 -0000 Ulf Lilleengen wrote: > On tor, aug 16, 2007 at 12:05:26 +0200, Ulf Lilleengen wrote: >> Hi, >> >> To be able to better understand VFS and locking in general, I started making >> fdescfs MPSAFE. I'm not experienced with any of these things, so there might be >> some errors, although I've looked through much VFS code and code for other FS >> like nullfs. I've tested it by running two pthreads on the same fd, and that seamt >> to work, but there might be other cases where it will fail. >> >> Patch is attached. >> > > Attached is a new patch that uses rwlocks instead of mutexes (since reading > the hash_table is frequently done). Also, it adds checking so that there is no > duplicates in the hash table before inserting the new fdescnode. And add a > mising hashfree(). > > I also checked to see if there was any issues regarding Jeffs new patch to > use atomic operations on the file structure, but there wasn't any obvious > places where this affects fdescfs. > > Patch here: > http://folk.ntnu.no/lulf/patches/freebsd/fdescfs/fdescfs_lock.diff This might be OK but you should be aware that rwlocks can be slower than mutexes when there is a suitably mixed read/write workload. We don't do the same adaptive spinning for wlocks as for mutexes when they are held by shared holders (since we don't track who they are so can't track whether they're running), and it is possible for readers to starve writers. If possible some benchmarks trying to find the worst case behaviour would be useful. Kris