Memory (NetBSD): takes ZFS arc bytes into account

Used logic from FreeBSD
This commit is contained in:
李通洲
2026-06-28 10:05:24 +08:00
parent acf76e565a
commit 4a4ca9a4a8
+5 -1
View File
@@ -11,8 +11,12 @@ const char* ffDetectMemory(FFMemoryResult* ram) {
return "sysctl(CTL_VM, VM_UVMEXP2) failed";
}
int64_t bytesArc = ffSysctlGetInt64("kstat.zfs.misc.arcstats.size", 0);
if (bytesArc > 0) bytesArc -= ffSysctlGetInt64("kstat.zfs.misc.arcstats.c_min", 0);
if (bytesArc < 0) bytesArc = 0;
ram->bytesTotal = (uint64_t) buf.npages * instance.state.platform.sysinfo.pageSize;
ram->bytesUsed = ((uint64_t) buf.active + (uint64_t) buf.inactive + (uint64_t) buf.wired) * instance.state.platform.sysinfo.pageSize;
ram->bytesUsed = ((uint64_t) buf.active + (uint64_t) buf.inactive + (uint64_t) buf.wired) * instance.state.platform.sysinfo.pageSize - (uint64_t) bytesArc;
return NULL;
}