DragonFly users List (threaded) for 2010-08
Re: MPSAFE work
: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? :-)
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
Post-release once the BGL has been removed some of the global tokens
will be turned into finer-grained tokens, depending.