DragonFly kernel List (threaded) for 2004-08
Re: VFS ROADMAP (and vfs01.patch stage 1 available for testing)
Oh, I should add one more thing... remember the whole XIO bit, SFBUFs,
and MSFBUFs? It is my intention to eventually replace UIO's with XIO's
in order to facilitate copies to and from a userspace that belongs to
some other process.
Another reason that the range locking has to be done by a kernel layer
is simply that a single UIO can specify hundreds of megabytes worth
of data space, but an XIO/MSFBUF (which stores lists of VM pages)
This means that large UIOs will have to be broken down into smaller XIO's.
There is no performance penalty here, not with large enough XIO's, but
it means that in order to retain atomicy guarentees the data space
for the entire UIO must be locked for the duration of all the smaller
XIO's that will occur.
The second reason the range locking has to be done globally in a kernel
layer is, of course, to give us hooks to implement a cluster-wide
data space (and cache) coherency infrastructure.