- Apply fix for memory detection from upstream

PR:		246667
Submitted by:	James Wright <james.wright@digital-chaos.com> (maintainer)
MFH:		2020Q2
Differential Revision:	https://reviews.freebsd.org/D24967
This commit is contained in:
Li-Wen Hsu 2020-05-23 09:42:42 +00:00
parent 87908b7622
commit 385680d842
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=536278
2 changed files with 50 additions and 1 deletions

View File

@ -2,7 +2,7 @@
PORTNAME= mesos PORTNAME= mesos
PORTVERSION= 1.9.0 PORTVERSION= 1.9.0
PORTREVISION= 4 PORTREVISION= 5
CATEGORIES= sysutils CATEGORIES= sysutils
MASTER_SITES= APACHE/mesos/${PORTVERSION} MASTER_SITES= APACHE/mesos/${PORTVERSION}
PKGNAMEPREFIX= apache- PKGNAMEPREFIX= apache-

View File

@ -0,0 +1,49 @@
--- 3rdparty/stout/include/stout/os/freebsd.hpp.orig 2020-05-22 20:48:06 UTC
+++ 3rdparty/stout/include/stout/os/freebsd.hpp
@@ -88,18 +88,29 @@ inline Try<Memory> memory()
const size_t pageSize = os::pagesize();
unsigned int freeCount;
- size_t length = sizeof(freeCount);
-
+ size_t freeCountLength = sizeof(freeCount);
if (sysctlbyname(
- "vm.stats.v_free_count",
+ "vm.stats.vm.v_free_count",
&freeCount,
- &length,
+ &freeCountLength,
nullptr,
0) != 0) {
return ErrnoError();
}
- memory.free = Bytes(freeCount * pageSize);
+ unsigned int inactiveCount;
+ size_t inactiveCountLength = sizeof(inactiveCount);
+ if (sysctlbyname(
+ "vm.stats.vm.v_inactive_count",
+ &inactiveCount,
+ &inactiveCountLength,
+ nullptr,
+ 0) != 0) {
+ return ErrnoError();
+ }
+
+ memory.free = Bytes((freeCount + inactiveCount) * pageSize);
+
int totalBlocks = 0;
int usedBlocks = 0;
@@ -112,8 +123,9 @@ inline Try<Memory> memory()
// FreeBSD supports multiple swap devices. Here we sum across all of them.
struct xswdev xswd;
size_t xswdSize = sizeof(xswd);
- int* mibDevice = &(mib[mibSize + 1]);
- for (*mibDevice = 0; ; (*mibDevice)++) {
+ for (int ndev = 0; ; ndev++) {
+ mib[mibSize] = ndev;
+
if (::sysctl(mib, 3, &xswd, &xswdSize, nullptr, 0) != 0) {
if (errno == ENOENT) {
break;