UMA questions
Andre Oppermann
andre at freebsd.org
Wed Aug 11 08:43:24 PDT 2004
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
More information about the freebsd-current
mailing list