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 @@
{'name': 'v8testing', 'variant': 'no_lfa'},
{'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
{'name': 'v8testing', 'variant': 'stress_concurrent_allocation'},
{'name': 'v8testing', 'variant': 'stress_concurrent_inlining'},
],
},
'v8_linux64_fuzzilli_ng_triggered': {
......@@ -466,6 +467,7 @@
'test_args': ['--extra-flags=--future'],
'shards': 6,
},
{'name': 'v8testing', 'variant': 'stress_concurrent_inlining'},
],
},
'v8_linux64_tsan_isolates_rel_ng_triggered': {
......@@ -1083,6 +1085,7 @@
{'name': 'v8testing', 'variant': 'slow_path'},
{'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
{'name': 'v8testing', 'variant': 'stress_concurrent_allocation'},
{'name': 'v8testing', 'variant': 'stress_concurrent_inlining'},
# Noavx.
{
'name': 'mozilla',
......@@ -1283,6 +1286,7 @@
'test_args': ['--extra-flags=--future'],
'shards': 6,
},
{'name': 'v8testing', 'variant': 'stress_concurrent_inlining'},
],
},
'V8 Linux64 UBSan': {
......
......@@ -582,8 +582,14 @@ DEFINE_BOOL(block_concurrent_recompilation, false,
"block queued jobs until released")
DEFINE_BOOL(concurrent_inlining, false,
"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,
"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_INT(max_serializer_nesting, 25,
"maximum levels for nesting child serializers")
......@@ -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
// implications to simplify disabling the flag.
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_allocation)
DEFINE_NEG_NEG_IMPLICATION(concurrent_allocation,
......@@ -1905,6 +1912,7 @@ DEFINE_BOOL(single_threaded, false, "disable the use of background tasks")
DEFINE_IMPLICATION(single_threaded, single_threaded_gc)
DEFINE_NEG_IMPLICATION(single_threaded, concurrent_recompilation)
DEFINE_NEG_IMPLICATION(single_threaded, compiler_dispatcher)
DEFINE_NEG_IMPLICATION(single_threaded, stress_concurrent_inlining)
//
// Parallel and concurrent GC (Orinoco) related flags.
......
......@@ -1068,4 +1068,10 @@
'*': [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 = {
"slow_path": [["--force-slow-path"]],
"stress": [["--stress-opt", "--no-liftoff", "--stress-lazy-source-positions"]],
"stress_concurrent_allocation": [["--stress-concurrent-allocation"]],
"stress_concurrent_inlining": [["--stress-concurrent-inlining"]],
"stress_js_bg_compile_wasm_code_gc": [["--stress-background-compile",
"--finalize-streaming-on-background",
"--stress-wasm-code-gc"]],
......@@ -57,6 +58,7 @@ INCOMPATIBLE_FLAGS_PER_VARIANT = {
"nooptimization": ["--opt", "--always-opt", "--no-liftoff", "--wasm-tier-up"],
"slow_path": ["--no-force-slow-path"],
"stress_concurrent_allocation": ["--single-threaded-gc", "--predictable"],
"stress_concurrent_inlining": ["--single-threaded", "--predictable"],
"stress_incremental_marking": ["--no-stress-incremental-marking"],
"future": ["--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 = {
"--no-enable-sse4-1": ["--enable-sse4-1"],
"--optimize-for-size": ["--max-semi-space-size=*"],
"--stress_concurrent_allocation": ["--single-threaded-gc", "--predictable"],
"--stress_concurrent_inlining": ["--single-threaded", "--predictable"],
"--stress-flush-bytecode": ["--no-stress-flush-bytecode"],
"--future": ["--parallel-compile-tasks"],
"--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