Commit a3be3e83 authored by Ulan Degenbaev's avatar Ulan Degenbaev Committed by Commit Bot

[compiler, infra] Add a --stress-concurrent-inlining flag and a bot

The new flag:
- enables --concurrent-inlining,
- disables --lazy-feedback-allocation,
- sets the interrupt budget to 15K.

Bug:v8:7790

Change-Id: Id236763f987a6b1309f0c43a2acd150c6e3723bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2652492
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72429}
parent c518fd8f
...@@ -329,6 +329,7 @@ ...@@ -329,6 +329,7 @@
{'name': 'v8testing', 'variant': 'no_lfa'}, {'name': 'v8testing', 'variant': 'no_lfa'},
{'name': 'v8testing', 'variant': 'stress_instruction_scheduling'}, {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
{'name': 'v8testing', 'variant': 'stress_concurrent_allocation'}, {'name': 'v8testing', 'variant': 'stress_concurrent_allocation'},
{'name': 'v8testing', 'variant': 'stress_concurrent_inlining'},
], ],
}, },
'v8_linux64_fuzzilli_ng_triggered': { 'v8_linux64_fuzzilli_ng_triggered': {
...@@ -466,6 +467,7 @@ ...@@ -466,6 +467,7 @@
'test_args': ['--extra-flags=--future'], 'test_args': ['--extra-flags=--future'],
'shards': 6, 'shards': 6,
}, },
{'name': 'v8testing', 'variant': 'stress_concurrent_inlining'},
], ],
}, },
'v8_linux64_tsan_isolates_rel_ng_triggered': { 'v8_linux64_tsan_isolates_rel_ng_triggered': {
...@@ -1083,6 +1085,7 @@ ...@@ -1083,6 +1085,7 @@
{'name': 'v8testing', 'variant': 'slow_path'}, {'name': 'v8testing', 'variant': 'slow_path'},
{'name': 'v8testing', 'variant': 'stress_instruction_scheduling'}, {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
{'name': 'v8testing', 'variant': 'stress_concurrent_allocation'}, {'name': 'v8testing', 'variant': 'stress_concurrent_allocation'},
{'name': 'v8testing', 'variant': 'stress_concurrent_inlining'},
# Noavx. # Noavx.
{ {
'name': 'mozilla', 'name': 'mozilla',
...@@ -1283,6 +1286,7 @@ ...@@ -1283,6 +1286,7 @@
'test_args': ['--extra-flags=--future'], 'test_args': ['--extra-flags=--future'],
'shards': 6, 'shards': 6,
}, },
{'name': 'v8testing', 'variant': 'stress_concurrent_inlining'},
], ],
}, },
'V8 Linux64 UBSan': { 'V8 Linux64 UBSan': {
......
...@@ -582,8 +582,14 @@ DEFINE_BOOL(block_concurrent_recompilation, false, ...@@ -582,8 +582,14 @@ DEFINE_BOOL(block_concurrent_recompilation, false,
"block queued jobs until released") "block queued jobs until released")
DEFINE_BOOL(concurrent_inlining, false, DEFINE_BOOL(concurrent_inlining, false,
"run optimizing compiler's inlining phase on a separate thread") "run optimizing compiler's inlining phase on a separate thread")
DEFINE_BOOL(stress_concurrent_inlining, false,
"makes concurrent inlining more likely to trigger in tests")
DEFINE_BOOL(turbo_direct_heap_access, false, DEFINE_BOOL(turbo_direct_heap_access, false,
"access kNeverSerialized objects directly from the heap") "access kNeverSerialized objects directly from the heap")
DEFINE_IMPLICATION(stress_concurrent_inlining, concurrent_inlining)
DEFINE_NEG_IMPLICATION(stress_concurrent_inlining, lazy_feedback_allocation)
DEFINE_WEAK_VALUE_IMPLICATION(stress_concurrent_inlining, interrupt_budget,
15 * KB)
DEFINE_IMPLICATION(concurrent_inlining, turbo_direct_heap_access) DEFINE_IMPLICATION(concurrent_inlining, turbo_direct_heap_access)
DEFINE_INT(max_serializer_nesting, 25, DEFINE_INT(max_serializer_nesting, 25,
"maximum levels for nesting child serializers") "maximum levels for nesting child serializers")
...@@ -1037,6 +1043,7 @@ DEFINE_BOOL(local_heaps, true, "allow heap access from background tasks") ...@@ -1037,6 +1043,7 @@ DEFINE_BOOL(local_heaps, true, "allow heap access from background tasks")
// Since the local_heaps flag is enabled by default, we defined reverse // Since the local_heaps flag is enabled by default, we defined reverse
// implications to simplify disabling the flag. // implications to simplify disabling the flag.
DEFINE_NEG_NEG_IMPLICATION(local_heaps, turbo_direct_heap_access) DEFINE_NEG_NEG_IMPLICATION(local_heaps, turbo_direct_heap_access)
DEFINE_NEG_NEG_IMPLICATION(local_heaps, stress_concurrent_inlining)
DEFINE_NEG_NEG_IMPLICATION(local_heaps, concurrent_inlining) DEFINE_NEG_NEG_IMPLICATION(local_heaps, concurrent_inlining)
DEFINE_NEG_NEG_IMPLICATION(local_heaps, concurrent_allocation) DEFINE_NEG_NEG_IMPLICATION(local_heaps, concurrent_allocation)
DEFINE_NEG_NEG_IMPLICATION(concurrent_allocation, DEFINE_NEG_NEG_IMPLICATION(concurrent_allocation,
...@@ -1905,6 +1912,7 @@ DEFINE_BOOL(single_threaded, false, "disable the use of background tasks") ...@@ -1905,6 +1912,7 @@ DEFINE_BOOL(single_threaded, false, "disable the use of background tasks")
DEFINE_IMPLICATION(single_threaded, single_threaded_gc) DEFINE_IMPLICATION(single_threaded, single_threaded_gc)
DEFINE_NEG_IMPLICATION(single_threaded, concurrent_recompilation) DEFINE_NEG_IMPLICATION(single_threaded, concurrent_recompilation)
DEFINE_NEG_IMPLICATION(single_threaded, compiler_dispatcher) DEFINE_NEG_IMPLICATION(single_threaded, compiler_dispatcher)
DEFINE_NEG_IMPLICATION(single_threaded, stress_concurrent_inlining)
// //
// Parallel and concurrent GC (Orinoco) related flags. // Parallel and concurrent GC (Orinoco) related flags.
......
...@@ -1068,4 +1068,10 @@ ...@@ -1068,4 +1068,10 @@
'*': [SKIP], # only relevant for mjsunit tests. '*': [SKIP], # only relevant for mjsunit tests.
}], }],
################################################################################
['variant == stress_concurrent_inlining', {
# Timeout during TurboFan optimization.
'ecma/FunctionObjects/15.3.1.1-3': [SKIP],
}],
] ]
...@@ -31,6 +31,7 @@ ALL_VARIANT_FLAGS = { ...@@ -31,6 +31,7 @@ ALL_VARIANT_FLAGS = {
"slow_path": [["--force-slow-path"]], "slow_path": [["--force-slow-path"]],
"stress": [["--stress-opt", "--no-liftoff", "--stress-lazy-source-positions"]], "stress": [["--stress-opt", "--no-liftoff", "--stress-lazy-source-positions"]],
"stress_concurrent_allocation": [["--stress-concurrent-allocation"]], "stress_concurrent_allocation": [["--stress-concurrent-allocation"]],
"stress_concurrent_inlining": [["--stress-concurrent-inlining"]],
"stress_js_bg_compile_wasm_code_gc": [["--stress-background-compile", "stress_js_bg_compile_wasm_code_gc": [["--stress-background-compile",
"--finalize-streaming-on-background", "--finalize-streaming-on-background",
"--stress-wasm-code-gc"]], "--stress-wasm-code-gc"]],
...@@ -57,6 +58,7 @@ INCOMPATIBLE_FLAGS_PER_VARIANT = { ...@@ -57,6 +58,7 @@ INCOMPATIBLE_FLAGS_PER_VARIANT = {
"nooptimization": ["--opt", "--always-opt", "--no-liftoff", "--wasm-tier-up"], "nooptimization": ["--opt", "--always-opt", "--no-liftoff", "--wasm-tier-up"],
"slow_path": ["--no-force-slow-path"], "slow_path": ["--no-force-slow-path"],
"stress_concurrent_allocation": ["--single-threaded-gc", "--predictable"], "stress_concurrent_allocation": ["--single-threaded-gc", "--predictable"],
"stress_concurrent_inlining": ["--single-threaded", "--predictable"],
"stress_incremental_marking": ["--no-stress-incremental-marking"], "stress_incremental_marking": ["--no-stress-incremental-marking"],
"future": ["--parallel-compile-tasks"], "future": ["--parallel-compile-tasks"],
"stress_js_bg_compile_wasm_code_gc": ["--no-stress-background-compile", "--parallel-compile-tasks"], "stress_js_bg_compile_wasm_code_gc": ["--no-stress-background-compile", "--parallel-compile-tasks"],
...@@ -96,6 +98,7 @@ INCOMPATIBLE_FLAGS_PER_EXTRA_FLAG = { ...@@ -96,6 +98,7 @@ INCOMPATIBLE_FLAGS_PER_EXTRA_FLAG = {
"--no-enable-sse4-1": ["--enable-sse4-1"], "--no-enable-sse4-1": ["--enable-sse4-1"],
"--optimize-for-size": ["--max-semi-space-size=*"], "--optimize-for-size": ["--max-semi-space-size=*"],
"--stress_concurrent_allocation": ["--single-threaded-gc", "--predictable"], "--stress_concurrent_allocation": ["--single-threaded-gc", "--predictable"],
"--stress_concurrent_inlining": ["--single-threaded", "--predictable"],
"--stress-flush-bytecode": ["--no-stress-flush-bytecode"], "--stress-flush-bytecode": ["--no-stress-flush-bytecode"],
"--future": ["--parallel-compile-tasks"], "--future": ["--parallel-compile-tasks"],
"--stress-incremental-marking": INCOMPATIBLE_FLAGS_PER_VARIANT["stress_incremental_marking"], "--stress-incremental-marking": INCOMPATIBLE_FLAGS_PER_VARIANT["stress_incremental_marking"],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment