$OpenBSD$ Index: src/mongo/util/processinfo_openbsd.cpp --- src/mongo/util/processinfo_openbsd.cpp.orig +++ src/mongo/util/processinfo_openbsd.cpp @@ -110,9 +110,11 @@ int ProcessInfo::getVirtualMemorySize() { } kinfo_proc* task = kvm_getprocs(kd, KERN_PROC_PID, _pid.toNative(), sizeof(kinfo_proc), &cnt); - kvm_close(kd); - return ((task->p_vm_dsize + task->p_vm_ssize + task->p_vm_tsize) * sysconf(_SC_PAGESIZE)) / + + int rss = ((task->p_vm_dsize + task->p_vm_ssize + task->p_vm_tsize) * sysconf(_SC_PAGESIZE)) / 1048576; + kvm_close(kd); + return rss; } int ProcessInfo::getResidentSize() { @@ -124,8 +126,9 @@ int ProcessInfo::getResidentSize() { return -1; } kinfo_proc* task = kvm_getprocs(kd, KERN_PROC_PID, _pid.toNative(), sizeof(kinfo_proc), &cnt); + int rss = (task->p_vm_rssize * sysconf(_SC_PAGESIZE)) / 1048576; // convert from pages to MB kvm_close(kd); - return (task->p_vm_rssize * sysconf(_SC_PAGESIZE)) / 1048576; // convert from pages to MB + return rss; } double ProcessInfo::getSystemMemoryPressurePercentage() { @@ -182,28 +185,14 @@ bool ProcessInfo::supported() { } bool ProcessInfo::blockCheckSupported() { - return true; + return false; } bool ProcessInfo::blockInMemory(const void* start) { - char x = 0; - if (mincore((void*)alignToStartOfPage(start), getPageSize(), &x)) { - log() << "mincore failed: " << errnoWithDescription(); - return 1; - } - return x & 0x1; + return false; } bool ProcessInfo::pagesInMemory(const void* start, size_t numPages, vector* out) { - out->resize(numPages); - // int mincore(const void *addr, size_t len, char *vec); - if (mincore((void*)alignToStartOfPage(start), numPages * getPageSize(), &(out->front()))) { - log() << "mincore failed: " << errnoWithDescription(); - return false; - } - for (size_t i = 0; i < numPages; ++i) { - (*out)[i] = 0x1; - } - return true; + return false; } }