cvs commit: src/sys/kern imgact_aout.c imgact_elf.c ...

Matthew Dillon dillon at
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
    cache buffers.

    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 mailing list