With r343051 UMA switched from atomic counts to counter(9) and now kernel
reports snap counts of how much a zone alloced and how much it freed. It may happen that snap values doesn't match, e.g alloced - freed < 0. Workaround that in memstat library. Reported by: pho
This commit is contained in:
parent
63f582e0f5
commit
aa43298309
@ -213,6 +213,15 @@ memstat_sysctl_uma(struct memory_type_list *list, int flags)
|
||||
mtp->mt_numfrees += upsp->ups_frees;
|
||||
}
|
||||
|
||||
/*
|
||||
* Values for uth_allocs and uth_frees frees are snap.
|
||||
* It may happen that kernel reports that number of frees
|
||||
* is greater than number of allocs. See counter(9) for
|
||||
* details.
|
||||
*/
|
||||
if (mtp->mt_numallocs < mtp->mt_numfrees)
|
||||
mtp->mt_numallocs = mtp->mt_numfrees;
|
||||
|
||||
mtp->mt_size = uthp->uth_size;
|
||||
mtp->mt_rsize = uthp->uth_rsize;
|
||||
mtp->mt_memalloced = mtp->mt_numallocs * uthp->uth_size;
|
||||
|
Loading…
Reference in New Issue
Block a user