[bmalloc][WTF] Add computing memory size implementation for FreeBSD
authorbasuke.suzuki@sony.com <basuke.suzuki@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 May 2020 03:06:23 +0000 (03:06 +0000)
committerbasuke.suzuki@sony.com <basuke.suzuki@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 May 2020 03:06:23 +0000 (03:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=211749

Reviewed by David Kilzer.

Source/bmalloc:

* bmalloc/AvailableMemory.cpp:
(bmalloc::computeAvailableMemory):

Source/WTF:

Share sysinfo(3) implementation with Linux and FreeBSD.

* wtf/RAMSize.cpp:
(WTF::computeRAMSize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261543 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/RAMSize.cpp
Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/AvailableMemory.cpp

index 5834597..c48ad2d 100644 (file)
@@ -1,3 +1,15 @@
+2020-05-11  Basuke Suzuki  <basuke.suzuki@sony.com>
+
+        [bmalloc][WTF] Add computing memory size implementation for FreeBSD
+        https://bugs.webkit.org/show_bug.cgi?id=211749
+
+        Reviewed by David Kilzer.
+
+        Share sysinfo(3) implementation with Linux and FreeBSD.
+
+        * wtf/RAMSize.cpp:
+        (WTF::computeRAMSize):
+
 2020-05-11  Mark Lam  <mark.lam@apple.com>
 
         Introduce WTF::Config and put Signal.cpp's init-once globals in it.
index 282788e..dd3d0c2 100644 (file)
@@ -54,14 +54,14 @@ static size_t computeRAMSize()
     if (!result)
         return ramSizeGuess;
     return status.ullTotalPhys;
-#elif defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC
-#if OS(LINUX)
+#elif USE(SYSTEM_MALLOC)
+#if OS(LINUX) || OS(FREEBSD)
     struct sysinfo si;
     sysinfo(&si);
     return si.totalram * si.mem_unit;
 #else
 #error "Missing a platform specific way of determining the available RAM"
-#endif // OS(LINUX)
+#endif // OS(LINUX) || OS(FREEBSD)
 #else
     return bmalloc::api::availableMemory();
 #endif
index c78567c..283ffb0 100644 (file)
@@ -1,3 +1,13 @@
+2020-05-11  Basuke Suzuki  <basuke.suzuki@sony.com>
+
+        [bmalloc][WTF] Add computing memory size implementation for FreeBSD
+        https://bugs.webkit.org/show_bug.cgi?id=211749
+
+        Reviewed by David Kilzer.
+
+        * bmalloc/AvailableMemory.cpp:
+        (bmalloc::computeAvailableMemory):
+
 2020-05-09  Don Olmstead  <don.olmstead@sony.com>
 
         [CMake] Use WEBKIT_EXECUTABLE in MallocBench
index 0410015..90ff709 100644 (file)
@@ -50,6 +50,7 @@
 #elif BOS(FREEBSD)
 #include "VMAllocate.h"
 #include <sys/sysctl.h>
+#include <sys/sysinfo.h>
 #include <sys/types.h>
 #include <sys/user.h>
 #endif
@@ -168,6 +169,11 @@ static size_t computeAvailableMemory()
     return ((sizeAccordingToKernel + multiple - 1) / multiple) * multiple;
 #elif BOS(LINUX)
     return LinuxMemory::singleton().availableMemory;
+#elif BOS(FREEBSD)
+    struct sysinfo info;
+    if (!sysinfo(&info))
+        return info.totalram * info.mem_unit;
+    return availableMemoryGuess;
 #elif BOS(UNIX)
     long pages = sysconf(_SC_PHYS_PAGES);
     long pageSize = sysconf(_SC_PAGE_SIZE);