Storing refcounts one after one appears to be a cache line
collision provoking. Having extra UMA zone for external refcounts
is even worse - it requires additional allocation.
The idea is to store mbuf refcount in the first mbuf to reference
a cluster. This may sometimes delay freeing the first mbuf, since
it goes free only when cluster is free. But the win is bigger than
The UMA_ZONE_REFCOUNT code is wiped from UMA. jeff@ personally
gave blessing for that. mbufs were the only ones who used it.
The idea for this patch came independntly from jeff@, rrs@,
rwatson@ and probably others.