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