cvs commit: src/sys/sys mbuf.h objcache.h src/sys/kern kern_objcache.c uipc_mbuf.c

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Jun 8 15:23:38 PDT 2005


dillon      2005/06/08 15:22:59 PDT

DragonFly src repository

  Modified files:
    sys/sys              mbuf.h objcache.h 
    sys/kern             kern_objcache.c uipc_mbuf.c 
  Log:
  Rollup mbuf/objcache fixes.
  
  * Completely replace the blocking algorithm that is used to stall when the
    depot has insufficient resources.
  
  * Use __offsetof() to calculate variable length structural sizes.
  
  * #if 0 out balancing code for now.  There isn't actually much of a need for
    it since each cpu can hold no more then two magazines anyway.  The depot
    will have the rest.
  
  * Increase the magazine capacity from 5 to 256 elements to improve
    performance.
  
  * The mbufs were being returned to a different objcache then they had been
    allocated from, due to a dependance on M_PKTHDR  and M_EXT.  But these
    flags can change unexpectedly and this led to lockups in the objcache
    code and other issues.  Also the share count on the cluster may mean
    that it is not possible to release an mbuf+cluster back to its original
    mbuf+cluster cache... it may have to be DTORed instead.
  
  * Change the way ref counts are handled in the mclmeta_cache.  The cache
    returns and expects a ref count of 0 now, and the link code deals with
    bumping it.
  
  Revision  Changes    Path
  1.29      +2 -0      src/sys/sys/mbuf.h
  1.2       +1 -0      src/sys/sys/objcache.h
  1.2       +194 -116  src/sys/kern/kern_objcache.c
  1.44      +114 -38   src/sys/kern/uipc_mbuf.c


http://www.dragonflybsd.org/cvsweb/src/sys/sys/mbuf.h.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/objcache.h.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_objcache.c.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_mbuf.c.diff?r1=1.43&r2=1.44&f=u





More information about the Commits mailing list