Memory (FreeBSD): don't query c_min if querying size fails

This commit is contained in:
李通洲
2026-06-28 10:04:54 +08:00
parent 778aa21192
commit acf76e565a
+4 -6
View File
@@ -11,13 +11,11 @@ const char* ffDetectMemory(FFMemoryResult* ram) {
int32_t pagesFree = ffSysctlGetInt("vm.stats.vm.v_free_count", 0) + ffSysctlGetInt("vm.stats.vm.v_inactive_count", 0) + ffSysctlGetInt("vm.stats.vm.v_cache_count", 0);
int64_t bytesCache = ffSysctlGetInt64("vfs.bufspace", 0);
#ifndef __DragonFly__
int64_t bytesArc = ffSysctlGetInt64("kstat.zfs.misc.arcstats.size", 0) - ffSysctlGetInt64("kstat.zfs.misc.arcstats.c_min", 0);
#else
int64_t bytesArc = 0;
#endif
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->bytesUsed = ram->bytesTotal - (uint64_t) pagesFree * instance.state.platform.sysinfo.pageSize - (uint64_t) bytesCache - (uint64_t) (bytesArc > 0 ? bytesArc : 0);
ram->bytesUsed = ram->bytesTotal - (uint64_t) pagesFree * instance.state.platform.sysinfo.pageSize - (uint64_t) bytesCache - (uint64_t) bytesArc;
return NULL;
}