configSizeToProtect should be 16KB
authorsbarati@apple.com <sbarati@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 14 Mar 2020 04:11:44 +0000 (04:11 +0000)
committersbarati@apple.com <sbarati@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 14 Mar 2020 04:11:44 +0000 (04:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=209068

Reviewed by Keith Miller.

Source/bmalloc:

* bmalloc/Gigacage.h:

Source/JavaScriptCore:

* runtime/JSCConfig.h:

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/JSCConfig.cpp
Source/JavaScriptCore/runtime/JSCConfig.h
Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/Gigacage.h

index 24e4d5c..5ddd71e 100644 (file)
@@ -1,3 +1,12 @@
+2020-03-13  Saam Barati  <sbarati@apple.com>
+
+        configSizeToProtect should be 16KB
+        https://bugs.webkit.org/show_bug.cgi?id=209068
+
+        Reviewed by Keith Miller.
+
+        * runtime/JSCConfig.h:
+
 2020-03-13  Yusuke Suzuki  <ysuzuki@apple.com>
 
         Unreviewed, fix JSC / test262 tests
index 01e0e63..79cc2b6 100644 (file)
@@ -37,7 +37,7 @@
 
 namespace JSC {
 
-alignas(PageSize) JS_EXPORT_PRIVATE Config g_jscConfig;
+alignas(ConfigSizeToProtect) JS_EXPORT_PRIVATE Config g_jscConfig;
 
 void Config::disableFreezingForTesting()
 {
index ea2446f..e922440 100644 (file)
@@ -34,13 +34,7 @@ class ExecutableAllocator;
 class FixedVMPoolExecutableAllocator;
 class VM;
 
-#if CPU(ARM64) || PLATFORM(WATCHOS)
-constexpr size_t PageSize = 16 * KB;
-#else
-constexpr size_t PageSize = 4 * KB;
-#endif
-
-constexpr size_t ConfigSizeToProtect = PageSize;
+constexpr size_t ConfigSizeToProtect = 16 * KB;
 
 #if ENABLE(SEPARATED_WX_HEAP)
 using JITWriteSeparateHeapsFunction = void (*)(off_t, const void*, size_t);
@@ -90,9 +84,8 @@ struct Config {
     };
 };
 
-extern "C" alignas(PageSize) JS_EXPORT_PRIVATE Config g_jscConfig;
+extern "C" alignas(ConfigSizeToProtect) JS_EXPORT_PRIVATE Config g_jscConfig;
 
 static_assert(sizeof(Config) == ConfigSizeToProtect, "");
-static_assert(roundUpToMultipleOf<PageSize>(ConfigSizeToProtect) == ConfigSizeToProtect, "");
 
 } // namespace JSC
index eea7c56..e53787b 100644 (file)
@@ -1,3 +1,12 @@
+2020-03-13  Saam Barati  <sbarati@apple.com>
+
+        configSizeToProtect should be 16KB
+        https://bugs.webkit.org/show_bug.cgi?id=209068
+
+        Reviewed by Keith Miller.
+
+        * bmalloc/Gigacage.h:
+
 2020-03-09  Mike Gorse  <mgorse@suse.com>
 
         Build failure on ppc64le if __unix is undefined
index 09bf3b7..53ff987 100644 (file)
@@ -66,16 +66,16 @@ BINLINE const char* name(Kind kind)
 
 #if GIGACAGE_ENABLED
 
+constexpr size_t configSizeToProtect = 16 * bmalloc::Sizes::kB;
+
 #if BOS_EFFECTIVE_ADDRESS_WIDTH < 48
 constexpr size_t primitiveGigacageSize = 2 * bmalloc::Sizes::GB;
 constexpr size_t jsValueGigacageSize = 2 * bmalloc::Sizes::GB;
 constexpr size_t maximumCageSizeReductionForSlide = bmalloc::Sizes::GB / 4;
-constexpr size_t configSizeToProtect = 16 * bmalloc::Sizes::kB;
 #else
 constexpr size_t primitiveGigacageSize = 32 * bmalloc::Sizes::GB;
 constexpr size_t jsValueGigacageSize = 16 * bmalloc::Sizes::GB;
 constexpr size_t maximumCageSizeReductionForSlide = 4 * bmalloc::Sizes::GB;
-constexpr size_t configSizeToProtect = 4 * bmalloc::Sizes::kB;
 #endif
 
 // In Linux, if `vm.overcommit_memory = 2` is specified, mmap with large size can fail if it exceeds the size of RAM.