From a40fdcb4390e89a7d66fbe31e253f0e7ea6ca59a Mon Sep 17 00:00:00 2001 From: Bosko Milekic Date: Wed, 30 Jul 2003 15:22:37 +0000 Subject: [PATCH] When generating the zone stats make sure to handle the master zone ("UMA Zone") carefully, because it does not have pcpu caches allocated at all. In the UP case, we did not catch this because one pcpu cache is always allocated with the zone, but for the MP case, we were getting bogus stats for this zone. Tested by: Lukas Ertl --- sys/vm/uma_core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index 1a585a73de21..fd1595457df5 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -2119,6 +2119,13 @@ sysctl_vm_zone(SYSCTL_HANDLER_ARGS) cachefree += cache->uc_freebucket->ub_ptr + 1; CPU_UNLOCK(cpu); } + /* + * The "UMA Zones" zone (master zone) does not have pcpu + * caches allocated for it, so the above computation is entirely + * bogus. Re-set cachefree to 0 in that case. + */ + if (z == zones) + cachefree = 0; LIST_FOREACH(bucket, &z->uz_full_bucket, ub_link) { cachefree += bucket->ub_ptr + 1; }