Re: UMA questions

From: Andre Oppermann <andre_at_freebsd.org>
Date: Wed, 11 Aug 2004 17:43:22 +0200
Bosko Milekic wrote:
>>1. UMA zones do not show up in the output of 'vmstat -m'.  Is there a way
>>  to get information on how much memory each UMA zone is using?
>>  Example: "sackhole", "tcptw", ...
> 
> 
>    vmstat -z, or sysctl vm.zone.  Be careful when interpreting the stats
>    in the Mbuf, Mbuf Cluster, and Packet zones, because they are special.
>    See www.unixdaemons.com/~bmilekic/netbuf_bmilekic.pdf if you want to
>    know why, exactly.

Great, thanks for the pointer.

>>2. What does the flag UMA_ZONE_ZINIT do exactly?
> 
> 
>    It initializes zone-allocated objects to zero.  This happens as objects
>    are first allocated (i.e., slabs are allocated) and before placement
>    into the slab cache.  Unfortunately, I am not sure this works very well
>    unless you also make sure to zero them as they are returned (dtor),
>    which is a shitty model.

Ok, so it is better to use uma_zalloc(zone, M_ZERO)?

>>3. What does the flag UMA_ZONE_NOFREE prevent exactly?  Will it prevent any
>>  zone/slab of this type to be free'd ever again?  This way the zone can
>>  only grow and not shrink after transient peaks?
 >
>    Yes.  It prevents freeing/draining of the slab cache.

Usually not what one wants.  Most of the time we want to give free slabs
back if under memory pressure.

 >4. What does the flag UMA_ZONE_STATIC do exactly?  I was under the impression
 >>  that zones are fixed sized by definition and don't need this to be
 >>  specified additionally.
 >
 > It does nothing.

Many thanks for your quick answers.  Would you mind documenting this in
the uma_* manpages?  Or someone from doc team?

-- 
Andre
Received on Wed Aug 11 2004 - 13:43:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:05 UTC