The old implementation chose the largest bucket zone such that if the
per-CPU caches are fully populated, the total number of items cached is
no larger than the specified limit. If no such zone existed, UMA would
not do any caching.
With the parent revision, we can now use uz_bucket_size_max to set a
limit, giving more precise control. This fixes a problem with the
kstack_cache zone: the limit of 4 * mp_ncpus items meant that the zone
would not do *any* caching. That's because the smallest bucket size
holds 2 items and we may cache up to 3 full buckets per CPU, and
2 * 3 * mp_ncpus > 4 * mp_ncpus.