summaryrefslogtreecommitdiff
path: root/psutil/arch/netbsd/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'psutil/arch/netbsd/mem.c')
-rw-r--r--psutil/arch/netbsd/mem.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/psutil/arch/netbsd/mem.c b/psutil/arch/netbsd/mem.c
index 26ab8e69..456479ba 100644
--- a/psutil/arch/netbsd/mem.c
+++ b/psutil/arch/netbsd/mem.c
@@ -31,8 +31,7 @@ psutil_virtual_mem(PyObject *self, PyObject *args) {
size_t size;
struct uvmexp_sysctl uv;
int mib[] = {CTL_VM, VM_UVMEXP2};
- long pagesize = psutil_getpagesize();
- unsigned long long available;
+ long long cached;
size = sizeof(uv);
if (sysctl(mib, 2, &uv, &size, NULL, 0) < 0) {
@@ -40,17 +39,18 @@ psutil_virtual_mem(PyObject *self, PyObject *args) {
return NULL;
}
- // follow zabbix
- available = uv.inactive + uv.execpages + uv.filepages + uv.free;
+ // Note: zabbix does not include anonpages, but that doesn't match the
+ // "Cached" value in /proc/meminfo.
+ // https://github.com/zabbix/zabbix/blob/af5e0f8/src/libs/zbxsysinfo/netbsd/memory.c#L182
+ cached = (uv.filepages + uv.execpages + uv.anonpages) << uv.pageshift;
return Py_BuildValue(
- "KKKKKKK",
- (unsigned long long) uv.npages << uv.pageshift, // total
- (unsigned long long) uv.free << uv.pageshift, // free
- (unsigned long long) uv.active << uv.pageshift, // active
- (unsigned long long) uv.inactive << uv.pageshift, // inactive
- (unsigned long long) uv.wired << uv.pageshift, // wired
- (unsigned long long) (uv.filepages + uv.execpages) * pagesize, // cached
- available << uv.pageshift // available
+ "LLLLLL",
+ (long long) uv.npages << uv.pageshift, // total
+ (long long) uv.free << uv.pageshift, // free
+ (long long) uv.active << uv.pageshift, // active
+ (long long) uv.inactive << uv.pageshift, // inactive
+ (long long) uv.wired << uv.pageshift, // wired
+ cached // cached
);
}