Non-MPSAFE filesystems de-orbit burn schedule

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

VFS_NEEDSGIANT() (and related) removal

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.

Timeline for filesystems fine-grained locking addition

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.

01 September 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.

List of already mpsafe filesystems

Filesystem

UFS

ZFS

NFS Client

NFS Server

UnionFS

PseudoFS

TmpFS

NullFS

DevFS

CD9660FS

Ext2FS

FdescFS

FifoFS

MSDOSFS

UDF

ProcFS

List of non-mpsafe filesystems

Filesystem

Owner

State

Date completed

CodaFS

rwatson

Non-MPSAFE

HPFS

Non-MPSAFE

NtFS

attilio

Non-MPSAFE

NwFS*

Non-MPSAFE

PortalFS

Non-MPSAFE

SmbFS*

mav / ixsystems

Non-MPSAFE

ReiserFS

dumbbell

MPSAFE

2012-03-27 (r233575)

XFS

davide

Non-MPSAFE

* 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.

Technical notes

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

The MSDosFS mpsafe process can be set as a good example on what expect by developers:

http://svnweb.freebsd.org/base?view=revision&revision=204466

http://svnweb.freebsd.org/base?view=revision&revision=204467

http://svnweb.freebsd.org/base?view=revision&revision=204468

http://svnweb.freebsd.org/base?view=revision&revision=204469

http://svnweb.freebsd.org/base?view=revision&revision=204471

http://svnweb.freebsd.org/base?view=revision&revision=204473

http://svnweb.freebsd.org/base?view=revision&revision=204589

http://svnweb.freebsd.org/base?view=revision&revision=204675

Technical notes on locking Filesystems

TBD


CategoryTODO

NONMPSAFE_DEORBIT_VFS (last edited 2012-04-10 17:15:04 by JeanSébastienPédron)