MPSAFE work

Matthew Dillon dillon at apollo.backplane.com
Wed Aug 25 09:41:24 PDT 2010


:I'm noticing a lot of MPSAFE work in this dev cycle.  Does this mean I'll
:see the end of the BGL in my lifetime? :-)
:
:Tim

    The September release will be the last release with the BGL.  The BGL
    will likely be turned off in HEAD after that and, once the token
    replacement has proven to be stable, removed entirely.

    Major portions of the I/O and filesystem paths will be BGL-free
    in the September release itself.  HAMMER in particular now has
    a per-mount lock and runs without the BGL, and critical paths inside
    HAMMER ... read() from the buffer cache and *stat() functions...
    are all MPSAFE and do not even use the per-mount lock.  Most of the
    I/O path plus a few select disk drivers (AHCI and SILI) will also
    be MPSAFE for the release.

    Also primary file descriptor operations, pipes, crypto, kqueue, select,
    poll, and some socket operations are already MPSAFE.

    Almost everything that matters from a performance standpoint will be
    MPSAFE in the September release.

    --

    Basically what we are doing is replacing the BGL with one of about
    a dozen lwkt_token's for those parts of the system which are not MPSAFE
    yet.  These particular tokens will continue to acquire the BGL
    internally through the September release but after the release the
    BGL will be removed and the lwkt_tokens will have to stand on their
    own.

    Post-release once the BGL has been removed some of the global tokens
    will be turned into finer-grained tokens, depending.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Users mailing list