From 7f6e27372b56bc6f3f742dbbcba8a535aa08547c Mon Sep 17 00:00:00 2001 From: Robert Watson Date: Mon, 25 Jul 2005 09:52:59 +0000 Subject: [PATCH] If a retrieved UMA zone is a secondary zone, don't report keg free items, as they actually belong to the primary zone, and maye otherwise be reported more than once. MFC after: 1 day --- lib/libmemstat/memstat_uma.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/libmemstat/memstat_uma.c b/lib/libmemstat/memstat_uma.c index b35c4d90cf8..6d5407c72d0 100644 --- a/lib/libmemstat/memstat_uma.c +++ b/lib/libmemstat/memstat_uma.c @@ -211,7 +211,16 @@ retry: mtp->mt_count = mtp->mt_numallocs - mtp->mt_numfrees; mtp->mt_zonefree = uthp->uth_zone_free; - mtp->mt_kegfree = uthp->uth_keg_free; + + /* + * UMA secondary zones share a keg with the primary zone. To + * avoid double-reporting of free items, report keg free + * items only in the primary zone. + */ + if (!(uthp->uth_zone_flags & UTH_ZONE_SECONDARY)) { + mtp->mt_free += mtp->mt_kegfree; + mtp->mt_kegfree = uthp->uth_keg_free; + } mtp->mt_free += mtp->mt_zonefree; }