DragonFly commits List (threaded) for 2005-06
cvs commit: src/sys/sys mbuf.h objcache.h src/sys/kern kern_objcache.c uipc_mbuf.c
dillon 2005/06/08 15:22:59 PDT
DragonFly src repository
sys/sys mbuf.h objcache.h
sys/kern kern_objcache.c uipc_mbuf.c
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
* 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
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