cvs commit: src/sys/kern imgact_aout.c imgact_elf.c ...
dillon at apollo.backplane.com
Wed Mar 29 12:28:59 PST 2006
There may be some short term instability from this commit. I'm
cleaning it up now.
Basically what I am doing is evolving the buffer cache to a point
where the I/O subsystem can depend on the XIO (VM page array) being
correct. Once completed, the I/O system will be able to map its DMA
directly from the VM page list in the buffer's XIO rather then have
to translate the KVA addresses. Ultimately this will allow us to
make the buffer's KVA mapping optional and that, in turn, will allow
the buffer cache to keep track of a great deal more dirty data then
it can now.
Related to all of this is that I will soon start committing the
beginnings of the CCMS (Cache Coherency Management System). The
first thing CCMS will do is take over the atomicy guarentees for
UNIX read and write. This in turn will allow the high level
vnode descriptor code, vn_read() and vn_write(), to do two things.
First, it will be able to *DIRECTLY* access the buffer cache to satisfy
requests. Second, because atomicy will no longer depend on holding
the vnode lock over the entire operation, it will allow us to develop
new VOP's for reading and writing that operate directly on buffer
And that, in turn, will allow us to create a userland VFS ABI because
it will allow the kernel to interact with userland in buffer-cache-sized
chunks rather then unbounded UIO's.
So I'm working on a whole chain of events here :-)
More information about the Commits