Define GIGACAGE_ALLOCATION_CAN_FAIL on Linux
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 May 2018 10:49:17 +0000 (10:49 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 May 2018 10:49:17 +0000 (10:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=183329

Reviewed by Michael Catanzaro.

We specify `GIGACAGE_ALLOCATION_CAN_FAIL 1` in Linux since
Linux can fail to `mmap` if `vm.overcommit_memory = 2`.
Users can enable Gigacage if users enable overcommit_memory.

* bmalloc/Gigacage.h:

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

Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/Gigacage.h

index 88732f9..9cdb365 100644 (file)
@@ -1,3 +1,16 @@
+2018-05-22  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Define GIGACAGE_ALLOCATION_CAN_FAIL on Linux
+        https://bugs.webkit.org/show_bug.cgi?id=183329
+
+        Reviewed by Michael Catanzaro.
+
+        We specify `GIGACAGE_ALLOCATION_CAN_FAIL 1` in Linux since
+        Linux can fail to `mmap` if `vm.overcommit_memory = 2`.
+        Users can enable Gigacage if users enable overcommit_memory.
+
+        * bmalloc/Gigacage.h:
+
 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         Use more C++17
index 027e280..7839f86 100644 (file)
 #define GIGACAGE_ALLOCATION_CAN_FAIL 0
 #endif
 
+// In Linux, if `vm.overcommit_memory = 2` is specified, mmap with large size can fail if it exceeds the size of RAM.
+// So we specify GIGACAGE_ALLOCATION_CAN_FAIL = 1.
+#if BOS(LINUX)
+#undef GIGACAGE_ALLOCATION_CAN_FAIL
+#define GIGACAGE_ALLOCATION_CAN_FAIL 1
+#endif
+
 static_assert(bmalloc::isPowerOfTwo(PRIMITIVE_GIGACAGE_SIZE), "");
 static_assert(bmalloc::isPowerOfTwo(JSVALUE_GIGACAGE_SIZE), "");