Commit 0af542c8 authored by Clemens Backes's avatar Clemens Backes Committed by Commit Bot

[wasm] Grow number of compilation queues dynamically

Instead of querying the platform for the number of available threads,
and allocating exactly N+1 queues, do grow the number of queues
dynamically. This allows for more than N+1 concurrent threads,
which then allows us to contribute to compilation instead of waiting
doing nothing. This will be added in a follow-up CL.

Special care is being taken to not synchronize too much between threads.
We take a shared mutex whenever stealing tasks, but not on the default
path where we pick a unit from the task's own queue.

R=thibaudm@chromium.org
CC=​etiennep@chromium.org

Bug: v8:11005
Change-Id: I1f67f15fb22b95ef246c37eb80c03132d8a1d149
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg_ng
Cq-Include-Trybots: luci.v8.try:v8_mac64_gc_stress_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467844
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70508}
parent 41b5c8d0
This diff is collapsed.
......@@ -1468,7 +1468,7 @@ void InstanceBuilder::CompileImportWrappers(
}
CancelableTaskManager task_manager;
// TODO(wasm): Switch this to the Jobs API.
// TODO(wasm): Switch this to the Jobs API, remove {GetMaxCompileConcurrency}.
const int max_background_tasks = GetMaxCompileConcurrency();
for (int i = 0; i < max_background_tasks; ++i) {
auto task = std::make_unique<CompileImportWrapperTask>(
......
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