chore: enable v8_enable_private_mapping_fork_optimization by default (#39253)

* chore: enable v8_enable_private_mapping_fork_optimization by default

* chore: cherry-pick 292a4a6 from v8
This commit is contained in:
Robo 2023-08-28 23:16:20 +09:00 коммит произвёл GitHub
Родитель f369b144d6
Коммит b5997a012d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 39 добавлений и 0 удалений

Просмотреть файл

@ -56,3 +56,7 @@ v8_builtins_profiling_log_file = ""
# https://chromium.googlesource.com/chromium/src/+/main/docs/dangling_ptr.md # https://chromium.googlesource.com/chromium/src/+/main/docs/dangling_ptr.md
# TODO(vertedinde): hunt down dangling pointers on Linux # TODO(vertedinde): hunt down dangling pointers on Linux
enable_dangling_raw_ptr_checks = false enable_dangling_raw_ptr_checks = false
# This flag speeds up the performance of fork/execve on linux systems.
# Ref: https://chromium-review.googlesource.com/c/v8/v8/+/4602858
v8_enable_private_mapping_fork_optimization = true

Просмотреть файл

@ -2,3 +2,4 @@ build_gn.patch
do_not_export_private_v8_symbols_on_windows.patch do_not_export_private_v8_symbols_on_windows.patch
fix_build_deprecated_attribute_for_older_msvc_versions.patch fix_build_deprecated_attribute_for_older_msvc_versions.patch
chore_allow_customizing_microtask_policy_per_context.patch chore_allow_customizing_microtask_policy_per_context.patch
fix_compile_error_on_macos_with_fork_optimization.patch

Просмотреть файл

@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: deepak1556 <hop2deep@gmail.com>
Date: Tue, 15 Aug 2023 23:59:59 +0900
Subject: fix: compile error on macOS with
v8_enable_private_mapping_fork_optimization=true
Follow-up to https://chromium-review.googlesource.com/c/v8/v8/+/4602858,
we are trying to enable this flag in Electron without any OS conditions in
args.gn which results in a compilation failure on macOS due to the lack of MADV_DONTFORK.
Given that Node.js and Electron both use posix_spawn on macOS which
by default does not copy MAP_JIT locations, it would be safe to isolate
the change only for linux.
Change-Id: I58ad50e557016fa573d7a27f33a60e2e5b7d1804
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4780212
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Deepak Mohan (Robo) <hop2deep@gmail.com>
Cr-Commit-Position: refs/heads/main@{#89557}
diff --git a/src/base/platform/platform-posix.cc b/src/base/platform/platform-posix.cc
index 77fd9e8f6dd5938d38344ffb0074fb70a0969fd9..73cdbdb19df2aecf3046b2bb2b6cb121f4dc5ca7 100644
--- a/src/base/platform/platform-posix.cc
+++ b/src/base/platform/platform-posix.cc
@@ -161,7 +161,7 @@ void* Allocate(void* hint, size_t size, OS::MemoryPermission access,
void* result = mmap(hint, size, prot, flags, kMmapFd, kMmapFdOffset);
if (result == MAP_FAILED) return nullptr;
-#if V8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION
+#if V8_OS_LINUX && V8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION
// This is advisory, so we ignore errors.
madvise(result, size, MADV_DONTFORK);
#endif