Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Aug 2011 10:11:36 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        perryh@pluto.rain.com
Cc:        avg@freebsd.org, freebsd-arch@freebsd.org
Subject:   Removing Giant from VFS in 10.0 (was: Re: skipping locks, mutex_owned, usb)
Message-ID:  <alpine.BSF.2.00.1108261007110.48200@fledge.watson.org>
In-Reply-To: <4e576127.Suqlhieb0FMDx8cB%perryh@pluto.rain.com>
References:  <4E53986B.5000804@FreeBSD.org> <201108230911.09021.jhb@freebsd.org> <4E564F15.3010809@FreeBSD.org> <201108250945.24606.jhb@freebsd.org> <4e576127.Suqlhieb0FMDx8cB%perryh@pluto.rain.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Fri, 26 Aug 2011, perryh@pluto.rain.com wrote:

> John Baldwin <jhb@freebsd.org> wrote:
>
>> ... acquire Giant.
>
> Last I heard, Giant was dropped in 8.0 (and that was the reason for isdn and 
> sio being dropped).  Has it been reinstated?  If so, should isdn and sio 
> also be reinstated?

Giant persists in a number of places in the kernel, although most mainstream 
subsystems have been Giant-free for several years.  Giant compatibility was 
removed from the network stack for 8, and I had hoped Giant compatibility 
would be removed from VFS for 9.  That hasn't happened, but there are signs it 
may happen for 10.  The main constraints there are that a pool of useful file 
systems remains unconverted to the new locking world order -- particularly, 
smbfs.

I'd love to see someone take the bull by the horns on this one (Attilio?) -- 
the process we used for the network stack can probably be replicated there 
without too much difficulty:

(1) Enumerate all remaining file systems dependent on Giant (probably already
     in the wiki, but review and update).

(2) Post a Giant deprecation plan for VFS to arch@, current@, and fs@,
     allowing for substantial windows of time between "Announce removal plans",
     "Disable build of non-conforming parts", "Remove non-conforming parts",
     and with plenty of solicitations for help in fixing non-conforming parts.

(3) Put in some of the legwork to help fix critical things -- mostly
     netsmb/smbfs.

I will commit to either (a) making Coda MPSAFE for 10.0 or (b) removing it 
from the tree myself if I or someone else doesn't do it in time.  But we do 
need more hands if we want to bring some of the legacy file systems forward -- 
especially things like nwfs/netncp, smbfs/netsmb, hpfs, etc.

We also need to start announcing this early in the 10.0 cycle so that 
third-party file system developers for FreeBSD -- especially anyone interested 
in things like OpenAFS and Fuse, can do appropriate updates there as well.

Robert



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1108261007110.48200>