This is an old revision of the document!


Non-MPSAFE filesystems de-orbit burn schedule

This page documents proposed schedules for removing infrastructure for non-MPSAFE VFS components and filesystems.

This macro is used in order to conditionally acquire/drop/assert Giant lock in VFS layer, based on the MPSAFETY of the filesystem to be dealt with. The major goal of the project is to make it irrelevant, which means, for instance, locking all the already non-mpsafe filesystems and later on strip off the compat stuff.

Date Done Event
27 August 2011 yes Post MPSAFE VFS plan to arch@.
08 November 2011 yes Add VFS_ALLOW_NONMPSAFE kernel option and make it the default.
06 March 2012 yes Remove VFS_ALLOW_NONMPSAFE as the default kernel config.
13 October 2012 yes FUSE import into base.
28 October 2012 no Disconnect non-mpsafe filesystems from the tree and remove the Giant-related code.
01 March 2013 no Garbage collect in-tree non-mpsafe filesystems code.
Filesystem
UFS
ZFS
NFS Client
NFS Server
UnionFS
PseudoFS
TmpFS
NullFS
DevFS
CD9660FS
Ext2FS
FdescFS
FifoFS
MSDOSFS
UDF
ProcFS
Filesystem Owner State Date completed
CodaFS rwatson Disconnect
HPFS Disconnected
NtFS Non-MPSAFE
NwFS* Non-MPSAFE
PortalFS Disconnected
SmbFS* mav / ixsystems Non-MPSAFE
ReiserFS dumbbell MPSAFE 2012-03-27 (r233575)
XFS Disconnected

* Please note that locking smbfs and nwfs would also require to lock netsmb and netncp components. Other operating systems got very good results in this (like MacOSX and Solaris) already.

As some of the current filesystems have a very poor in-kernel support but they are actually very useful (with the most notable case being NTFS), in order to not loose their support, we will import in the kernel and actively maintain the FUSE module. At this present stage, most of the bugs from the port seems addressed. Please refer to the following e-mails:

http://lists.freebsd.org/pipermail/freebsd-fs/2012-September/015180.html

http://lists.freebsd.org/pipermail/freebsd-fs/2012-September/015179.html

Several months ago kib@ already provided a patch that can be used as a guidance for this:

http://people.freebsd.org/~kib/misc/VFS_NOLOCK_GIANT.4.patch

MsdosFS Giant removal

  • nonmpsafe_deorbit_vfs.1350382418.txt.gz
  • Last modified: 2012/10/16 10:13
  • by AttilioRao