cvs commit: src/sys/kern kern_msfbuf.c kern_xio.c src/sys/sys msfbuf.h src/sys/conf files

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Jun 5 12:58:30 PDT 2004


dillon      2004/06/05 12:57:40 PDT

DragonFly src repository

  Modified files:
    sys/kern             kern_xio.c 
    sys/conf             files 
  Added files:
    sys/kern             kern_msfbuf.c 
    sys/sys              msfbuf.h 
  Log:
  Add the MSFBUF API.  MSFBUFs are like SFBUFs but they manage ephermal
  multi-page mappings instead of single-page mappings.  MSFBUFs have the
  same caching and page invalidation optimizations that SFBUFs have and are
  considered to be SMP-friendly.
  
  Whereas XIO manages pure page lists, MSFBUFs manage KVA mappings of pure
  page lists.
  
  This initial commit just gets the basic API operational.  The roadmap for
  future work includes things like better interactions with third-party XIOs,
  mapping user buffers into the kernel (extending the xio_init_ubuf() API into
  the MSFBUF API), and allowing higher level subsystems to pass previously
  released MSFBUFs as a hint to speed-up regeneration.  We also need to come
  up with a way to overload additional sets of MSFBUFs representing smaller
  chunks of memory on top of the same KVA space in order to efficiently use
  our KVA reservation when dealing with subsystems like the buffer cache.
  
  MSFBUFs will eventually replace the KVA management in the BUF/BIO, PIPE,
  and other subsystems which create fake linear mappings with pbufs.  The
  general idea for BUF/BIO will be to use XIO and MSFBUFs to avoid KVA
  mapping file data through the nominal I/O path.  XIO will be the primary I/O
  buffer mechanism while MSFBUFs will be used when things like UFS decide they
  need a temporary mapping.
  
  This is a collaborative work between Hiten Pandya <hmp at xxxxxxxxxxxxxxxxxxxxx>
  and Matthew Dillon <dillon at xxxxxxxxxxxxx>.
  
  Revision  Changes    Path
  1.6       +14 -0     src/sys/kern/kern_xio.c
  1.63      +1 -0      src/sys/conf/files


http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_xio.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/conf/files.diff?r1=1.62&r2=1.63&f=u





More information about the Commits mailing list