Title: [211111] trunk/Source/_javascript_Core
- Revision
- 211111
- Author
- [email protected]
- Date
- 2017-01-24 14:07:34 -0800 (Tue, 24 Jan 2017)
Log Message
Enable the stochastic space-time scheduler on the larger multicores
https://bugs.webkit.org/show_bug.cgi?id=167382
<rdar://problem/30173375>
Rubber stamped by Saam Barati
This looks like a 1.3% JetStream speed-up thanks to a 28% splay-latency improvement. This new
scheduler seems to prevent all of the same pathologies as the old one prevented. But instead of
periodically suspending the mutator, this new one will only suspend after an iteration of the
constraint fixpoint. The length of that suspension length is random with the distribution being
governed by mutatorUtilization. Once resumed, the mutator gets to run unimpeded until draining
stalls.
I'm enabling it on platforms as I benchmark those platforms. It's possible that we will want to
use a different scheduler on different platforms.
* runtime/Options.cpp:
(JSC::overrideDefaults):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (211110 => 211111)
--- trunk/Source/_javascript_Core/ChangeLog 2017-01-24 21:54:59 UTC (rev 211110)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-01-24 22:07:34 UTC (rev 211111)
@@ -1,3 +1,24 @@
+2017-01-24 Filip Pizlo <[email protected]>
+
+ Enable the stochastic space-time scheduler on the larger multicores
+ https://bugs.webkit.org/show_bug.cgi?id=167382
+ <rdar://problem/30173375>
+
+ Rubber stamped by Saam Barati
+
+ This looks like a 1.3% JetStream speed-up thanks to a 28% splay-latency improvement. This new
+ scheduler seems to prevent all of the same pathologies as the old one prevented. But instead of
+ periodically suspending the mutator, this new one will only suspend after an iteration of the
+ constraint fixpoint. The length of that suspension length is random with the distribution being
+ governed by mutatorUtilization. Once resumed, the mutator gets to run unimpeded until draining
+ stalls.
+
+ I'm enabling it on platforms as I benchmark those platforms. It's possible that we will want to
+ use a different scheduler on different platforms.
+
+ * runtime/Options.cpp:
+ (JSC::overrideDefaults):
+
2017-01-24 Michael Saboff <[email protected]>
JSArray::tryCreateUninitialized should be called JSArray::tryCreateForInitializationPrivate
Modified: trunk/Source/_javascript_Core/runtime/Options.cpp (211110 => 211111)
--- trunk/Source/_javascript_Core/runtime/Options.cpp 2017-01-24 21:54:59 UTC (rev 211110)
+++ trunk/Source/_javascript_Core/runtime/Options.cpp 2017-01-24 22:07:34 UTC (rev 211111)
@@ -312,7 +312,8 @@
Options::maximumMutatorUtilization() = 0.6;
Options::concurrentGCMaxHeadroom() = 1.4;
Options::concurrentGCPeriodMS() = 10;
- }
+ } else
+ Options::useStochasticMutatorScheduler() = true;
}
static void recomputeDependentOptions()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes