Commit 1e41d4d0 authored by Ulan Degenbaev's avatar Ulan Degenbaev Committed by Commit Bot

Add a feature flag for reducing the number of concurrent marking tasks

The V8ReduceConcurrentMarkingTasks flag will be used in Finch experiment.

Bug: v8:10442
Change-Id: I2cb6d0a8445f4eeb9fcbad9ecb8595542d50fc8b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2283219Reviewed-by: default avatarRoss McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#786242}
parent 321ad9b5
...@@ -22,15 +22,20 @@ const base::Feature kV8OffThreadFinalization{"V8OffThreadFinalization", ...@@ -22,15 +22,20 @@ const base::Feature kV8OffThreadFinalization{"V8OffThreadFinalization",
const base::Feature kV8LazyFeedbackAllocation{"V8LazyFeedbackAllocation", const base::Feature kV8LazyFeedbackAllocation{"V8LazyFeedbackAllocation",
base::FEATURE_ENABLED_BY_DEFAULT}; base::FEATURE_ENABLED_BY_DEFAULT};
// Enable concurrent inlining in TurboFan. // Enables concurrent inlining in TurboFan.
const base::Feature kV8ConcurrentInlining{"V8ConcurrentInlining", const base::Feature kV8ConcurrentInlining{"V8ConcurrentInlining",
base::FEATURE_DISABLED_BY_DEFAULT}; base::FEATURE_DISABLED_BY_DEFAULT};
// Enable per-context marking worklists in V8 GC. // Enables per-context marking worklists in V8 GC.
const base::Feature kV8PerContextMarkingWorklist{ const base::Feature kV8PerContextMarkingWorklist{
"V8PerContextMarkingWorklist", base::FEATURE_DISABLED_BY_DEFAULT}; "V8PerContextMarkingWorklist", base::FEATURE_DISABLED_BY_DEFAULT};
// Enable flushing of the instruction cache for the embedded blob. // Enables flushing of the instruction cache for the embedded blob.
const base::Feature kV8FlushEmbeddedBlobICache{ const base::Feature kV8FlushEmbeddedBlobICache{
"kV8FlushEmbeddedBlobICache", base::FEATURE_DISABLED_BY_DEFAULT}; "kV8FlushEmbeddedBlobICache", base::FEATURE_DISABLED_BY_DEFAULT};
// Enables reduced number of concurrent marking tasks.
const base::Feature kV8ReduceConcurrentMarkingTasks{
"kV8ReduceConcurrentMarkingTasks", base::FEATURE_DISABLED_BY_DEFAULT};
} // namespace features } // namespace features
...@@ -17,6 +17,7 @@ GIN_EXPORT extern const base::Feature kV8LazyFeedbackAllocation; ...@@ -17,6 +17,7 @@ GIN_EXPORT extern const base::Feature kV8LazyFeedbackAllocation;
GIN_EXPORT extern const base::Feature kV8ConcurrentInlining; GIN_EXPORT extern const base::Feature kV8ConcurrentInlining;
GIN_EXPORT extern const base::Feature kV8PerContextMarkingWorklist; GIN_EXPORT extern const base::Feature kV8PerContextMarkingWorklist;
GIN_EXPORT extern const base::Feature kV8FlushEmbeddedBlobICache; GIN_EXPORT extern const base::Feature kV8FlushEmbeddedBlobICache;
GIN_EXPORT extern const base::Feature kV8ReduceConcurrentMarkingTasks;
} // namespace features } // namespace features
......
...@@ -248,6 +248,14 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode) { ...@@ -248,6 +248,14 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode) {
sizeof(experimental_flush_embedded_blob_icache) - 1); sizeof(experimental_flush_embedded_blob_icache) - 1);
} }
if (base::FeatureList::IsEnabled(features::kV8ReduceConcurrentMarkingTasks)) {
static const char gc_experiment_reduce_concurrent_marking_tasks[] =
"--gc-experiment-reduce-concurrent-marking-tasks";
v8::V8::SetFlagsFromString(
gc_experiment_reduce_concurrent_marking_tasks,
sizeof(gc_experiment_reduce_concurrent_marking_tasks) - 1);
}
if (IsolateHolder::kStrictMode == mode) { if (IsolateHolder::kStrictMode == mode) {
static const char use_strict[] = "--use_strict"; static const char use_strict[] = "--use_strict";
v8::V8::SetFlagsFromString(use_strict, sizeof(use_strict) - 1); v8::V8::SetFlagsFromString(use_strict, sizeof(use_strict) - 1);
......
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