diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi index 82c95b4d6db5ee..3c94b0bca4c383 100644 --- a/tools/v8_gypfiles/features.gypi +++ b/tools/v8_gypfiles/features.gypi @@ -68,6 +68,20 @@ }, { 'v8_enable_system_instrumentation': 0, }], + ['OS=="linux"', { + # Sets -dV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION. + # + # This flag speeds up the performance of fork/execve on Linux systems for + # embedders which use it (like Node.js). It works by marking the pages that + # V8 allocates as MADV_DONTFORK. Without MADV_DONTFORK, the Linux kernel + # spends a long time manipulating page mappings on fork and exec which the + # child process doesn't generally need to access. + # + # See v8:7381 for more details. + 'v8_enable_private_mapping_fork_optimization': 1, + }, { + 'v8_enable_private_mapping_fork_optimization': 0, + }], ], 'is_debug%': 0, @@ -310,6 +324,9 @@ ['v8_enable_hugepage==1', { 'defines': ['ENABLE_HUGEPAGE',], }], + ['v8_enable_private_mapping_fork_optimization==1', { + 'defines': ['V8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION'], + }], ['v8_enable_vtunejit==1', { 'defines': ['ENABLE_VTUNE_JIT_INTERFACE',], }],