Make it possible to reclaim items from a specific NUMA domain.
- Add uma_zone_reclaim_domain() and uma_reclaim_domain().
- Permit parallel reclamations. Use a counter instead of a flag to
synchronize with zone_dtor().
- Use the zone lock to protect cache_shrink() now that parallel reclaims
can happen.
- Add a sysctl that can be used to trigger reclamation from a specific
domain.
There is one issue I am not sure how to resolve. uma_reclaim()
currently tries to put pressure on bucket sizes. If multiple page
daemons start reclaiming their respective UMA caches concurrently, we'd
be putting extra pressure on the bucket size.