SMP problem with uma_zalloc

Harti Brandt brandt at
Mon Jul 21 07:04:50 PDT 2003

On Mon, 21 Jul 2003, Bosko Milekic wrote:

BM>  Ahhhh.  Given the explanation, the small size of the limits makes a
BM>  lot more sense now.  Previously, the limit probably enforced the
BM>  actual number of cached (pre-allocated) items in the pool.  So, it was
BM>  more than just a "limit," it was a cache size parameter.  That is
BM>  probably why its size was kept relatively small.  In the zone setting,
BM>  the limit can easily be made larger or removed altogether (if there is
BM>  no danger of that structure consuming all of kernel memory).

No, there isn't. VCCs are usually limited by the interface card to a couple
of thousand.

BM>> How do you think about adding a paragraph for uma_zone_set_max to the man
BM>> page?:
BM>> An upper limit of items in the zone can be specified with a call to
BM>> uma_zone_set_max. This limits the total number of items which includes:
BM>> allocated items, free items and free items in the per-cpu caches. On
BM>> systems with more than one CPU it may not be possible to allocate the
BM>> specified number of items, because all of the remaining free items may
BM>> be in the caches of the other CPUs when the limit is hit.
BM>  Given that it has obviously led to confusion, this sort of change to
BM>  the man page would be encouraging.
BM>  Perhaps you would also ammend to it the purpose of uma_zone_set_max(),
BM>  as it currently stands:
BM>  "The purpose of uma_zone_set_max() is to limit the maximum
BM>  amount of memory that the system can dedicate toward the zone
BM>  specified by the 'zone' argument." <insert your text from above here>
BM>  Would you like to commit the change?

Ok, I'll commit it.

harti brandt,
brandt at, harti at

More information about the freebsd-current mailing list