cvs commit: src/sys/kern kern_msfbuf.c src/sys/sys msfbuf.h src/sys/vfs/nfs nfs_bio.c src/sys/vm vm_page.h

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Mar 3 16:45:11 PST 2005


dillon      2005/03/03 16:44:49 PST

DragonFly src repository

  Modified files:
    sys/kern             kern_msfbuf.c 
    sys/sys              msfbuf.h 
    sys/vfs/nfs          nfs_bio.c 
    sys/vm               vm_page.h 
  Log:
  This is a major revamping of our MSFBUF API.  MSFBUFs are used to map
  things into kernel memory so the kernel and device drivers which require
  such mappings can easily get them.  MSFBUFs will soon replace the buffer
  cache's KVA mapping code, be used in the journaling code, get and put pages,
  reverse-map local kernel buffers, as well as other things.
  
  The eventual goal is to make KVA mappings completely optional and pass
  XIOs down the I/O chain, and if a device driver needs a mapping it would
  then be able to use an MSFBUF to get it.  This in turn will allow the
  buffer cache to manage much larger data sets and remove the absurdly low
  dirty data buffer limitations we currently have.
  
  * Replace the hash table with a simple hint in the vm_page structure.
    Currently we do not avoid the overhead of populating an XIO structure or
    regenerating the page list, but the use of qenter2 does avoid the invltlb
    overhead.  The API and internal structure is designed to allow far better
    optimizations of XIO mappings in the future.
  
  * Remove MSFBUF sharing.  Sharing does not occur very often and not doing
    it allows an msfbuf to inherit certain context-sensitive information
    such as a supplied XIO pointer, cpu affinity (for NUMA), easier SMP
    operation, etc.
  
  * Take advantage of the recent XIO changes.
  
  * Add API routines to generate MSFBUFs from various sources, including
    page lists, XIO's, user bufs, kernel bufs, and soon UIO's.
  
  Submitted-by:  Collaboration between Hiten Pandya and Matt Dillon
  
  Revision  Changes    Path
  1.10      +219 -116  src/sys/kern/kern_msfbuf.c
  1.8       +32 -12    src/sys/sys/msfbuf.h
  1.19      +4 -2      src/sys/vfs/nfs/nfs_bio.c
  1.18      +4 -0      src/sys/vm/vm_page.h


http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_msfbuf.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/msfbuf.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_bio.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_page.h.diff?r1=1.17&r2=1.18&f=u





More information about the Commits mailing list