Bug 167737 - The collector thread should only start when the mutator doesn't have heap access
Summary: The collector thread should only start when the mutator doesn't have heap access
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
: 166827 (view as bug list)
Depends on: 168502 168577
Blocks: 165909
  Show dependency treegraph
 
Reported: 2017-02-02 09:15 PST by Filip Pizlo
Modified: 2017-03-18 07:54 PDT (History)
14 users (show)

See Also:


Attachments
it begins (39.63 KB, patch)
2017-02-02 10:59 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
it is written (56.26 KB, patch)
2017-02-02 12:10 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
more things compile (92.90 KB, patch)
2017-02-02 14:45 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
it compiles! (97.53 KB, patch)
2017-02-02 15:11 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
crashes after 1 GC (98.19 KB, patch)
2017-02-03 16:32 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
restoring the "scan my own thread" part of ConservativeRoots (103.50 KB, patch)
2017-02-03 17:02 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
it's so correct that it can run FIVE collections before crashing (104.21 KB, patch)
2017-02-04 12:12 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
seems to work (135.73 KB, patch)
2017-02-04 18:45 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
performs well and added tests for passing the conn (195.63 KB, patch)
2017-02-04 21:52 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
fix more bugs (198.79 KB, patch)
2017-02-06 11:25 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
OMG it passes so many tests (198.12 KB, patch)
2017-02-06 17:00 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
fix build a bit (198.33 KB, patch)
2017-02-06 20:10 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
more fixes (199.27 KB, patch)
2017-02-06 20:16 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (199.28 KB, patch)
2017-02-06 20:18 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
fix more build (198.63 KB, patch)
2017-02-06 21:03 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (213.13 KB, patch)
2017-02-10 16:44 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
fixed build again (213.12 KB, patch)
2017-02-11 09:42 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
added more tests (264.63 KB, patch)
2017-02-11 14:40 PST, Filip Pizlo
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews124 for ios-simulator-wk2 (903.10 KB, application/zip)
2017-02-11 16:10 PST, Build Bot
no flags Details
Archive of layout-test-results from ews106 for mac-elcapitan-wk2 (966.42 KB, application/zip)
2017-02-11 16:48 PST, Build Bot
no flags Details
redid conservative scanning again (265.42 KB, patch)
2017-02-12 08:27 PST, Filip Pizlo
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews104 for mac-elcapitan-wk2 (1010.84 KB, application/zip)
2017-02-12 09:48 PST, Build Bot
no flags Details
Archive of layout-test-results from ews125 for ios-simulator-wk2 (917.57 KB, application/zip)
2017-02-12 09:57 PST, Build Bot
no flags Details
more (272.22 KB, patch)
2017-02-12 11:01 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (272.63 KB, patch)
2017-02-12 12:35 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (272.64 KB, patch)
2017-02-12 14:18 PST, Filip Pizlo
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews116 for mac-elcapitan (1.70 MB, application/zip)
2017-02-12 15:56 PST, Build Bot
no flags Details
the patch (273.39 KB, patch)
2017-02-13 20:13 PST, Filip Pizlo
fpizlo: review-
Details | Formatted Diff | Diff
more (275.62 KB, patch)
2017-02-14 14:50 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
patch from other computer (275.40 KB, patch)
2017-02-14 14:53 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (277.28 KB, patch)
2017-02-14 16:05 PST, Filip Pizlo
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews115 for mac-elcapitan (2.05 MB, application/zip)
2017-02-14 18:28 PST, Build Bot
no flags Details
the patch (277.35 KB, patch)
2017-02-16 10:24 PST, Filip Pizlo
keith_miller: review+
Details | Formatted Diff | Diff
patch for landing (279.09 KB, patch)
2017-02-16 13:18 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
patch for relanding (264.97 KB, patch)
2017-02-19 17:29 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
better patch for relanding (239.78 KB, patch)
2017-02-19 17:36 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (239.74 KB, patch)
2017-02-20 13:52 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2017-02-02 09:15:51 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2017-02-02 10:59:35 PST
Created attachment 300421 [details]
it begins
Comment 2 Filip Pizlo 2017-02-02 12:10:56 PST
Created attachment 300430 [details]
it is written

Ugh, this will not be fun to test.
Comment 3 Filip Pizlo 2017-02-02 14:45:20 PST
Created attachment 300453 [details]
more things compile
Comment 4 Filip Pizlo 2017-02-02 15:11:44 PST
Created attachment 300458 [details]
it compiles!
Comment 5 Filip Pizlo 2017-02-03 16:32:50 PST
Created attachment 300578 [details]
crashes after 1 GC
Comment 6 Filip Pizlo 2017-02-03 17:02:30 PST
Created attachment 300581 [details]
restoring the "scan my own thread" part of ConservativeRoots

Well that's an annoying refactoring to have to do.  I think I'm almost done though.  I mostly just reverted that part of the original "GC in thread" patch.
Comment 7 Filip Pizlo 2017-02-04 12:12:55 PST
Created attachment 300635 [details]
it's so correct that it can run FIVE collections before crashing
Comment 8 Filip Pizlo 2017-02-04 18:45:39 PST
Created attachment 300656 [details]
seems to work
Comment 9 Filip Pizlo 2017-02-04 21:52:39 PST
Created attachment 300658 [details]
performs well and added tests for passing the conn

It's a huge patch because it includes two version of splay.
Comment 10 Filip Pizlo 2017-02-06 11:25:30 PST
Created attachment 300739 [details]
fix more bugs
Comment 11 Filip Pizlo 2017-02-06 17:00:51 PST
Created attachment 300769 [details]
OMG it passes so many tests
Comment 12 WebKit Commit Bot 2017-02-06 17:03:49 PST
Attachment 300769 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/GCConningOfficer.h:40:  The parameter name "officer" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1118:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1127:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1153:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1163:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 17 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 13 Filip Pizlo 2017-02-06 20:04:43 PST
Perfect score!
Comment 14 Filip Pizlo 2017-02-06 20:10:18 PST
Created attachment 300781 [details]
fix build a bit
Comment 15 WebKit Commit Bot 2017-02-06 20:11:51 PST
Attachment 300781 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/GCConningOfficer.h:40:  The parameter name "officer" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1118:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1127:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1153:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1163:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 17 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 16 Filip Pizlo 2017-02-06 20:16:58 PST
Created attachment 300782 [details]
more fixes
Comment 17 Filip Pizlo 2017-02-06 20:18:38 PST
Created attachment 300783 [details]
more

Fixed some inline asm
Comment 18 WebKit Commit Bot 2017-02-06 20:20:03 PST
Attachment 300783 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/GCConningOfficer.h:40:  The parameter name "officer" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1118:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1127:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1153:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1163:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 17 in 36 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 19 Filip Pizlo 2017-02-06 21:03:32 PST
Created attachment 300786 [details]
fix more build
Comment 20 WebKit Commit Bot 2017-02-06 21:05:34 PST
Attachment 300786 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/GCConningOfficer.h:40:  The parameter name "officer" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1118:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1127:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1153:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1163:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 17 in 36 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 21 Filip Pizlo 2017-02-10 16:44:52 PST
Created attachment 301216 [details]
more
Comment 22 WebKit Commit Bot 2017-02-10 16:46:57 PST
Attachment 301216 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1118:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1127:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1153:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1163:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 18 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 23 Filip Pizlo 2017-02-11 09:42:46 PST
Created attachment 301261 [details]
fixed build again
Comment 24 Filip Pizlo 2017-02-11 14:40:33 PST
Created attachment 301275 [details]
added more tests
Comment 25 WebKit Commit Bot 2017-02-11 14:50:28 PST
Attachment 301275 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1119:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1128:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1154:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1164:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 21 in 57 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 26 Filip Pizlo 2017-02-11 15:35:53 PST
Comment on attachment 301275 [details]
added more tests

workers/bomb.html is crashing.  I need to debug that some more.
Comment 27 Filip Pizlo 2017-02-11 15:42:16 PST
(In reply to comment #26)
> Comment on attachment 301275 [details]
> added more tests
> 
> workers/bomb.html is crashing.  I need to debug that some more.

It seems to become a lot more stable when I switch to the old setjmp way of getting callee saves.  But that doesn't seem to be enough to make it completely stable.
Comment 28 Build Bot 2017-02-11 16:10:09 PST
Comment on attachment 301275 [details]
added more tests

Attachment 301275 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/3070203

New failing tests:
js/dom/gc-slot-visitor-parallel-drain-pings-runloop-when-done.html
workers/bomb.html
Comment 29 Build Bot 2017-02-11 16:10:14 PST
Created attachment 301282 [details]
Archive of layout-test-results from ews124 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews124  Port: ios-simulator-wk2  Platform: Mac OS X 10.11.6
Comment 30 Build Bot 2017-02-11 16:48:24 PST
Comment on attachment 301275 [details]
added more tests

Attachment 301275 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/3070356

New failing tests:
js/dom/gc-slot-visitor-parallel-drain-pings-runloop-when-done.html
workers/bomb.html
Comment 31 Build Bot 2017-02-11 16:48:30 PST
Created attachment 301285 [details]
Archive of layout-test-results from ews106 for mac-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-elcapitan-wk2  Platform: Mac OS X 10.11.6
Comment 32 Filip Pizlo 2017-02-12 08:27:44 PST
Created attachment 301304 [details]
redid conservative scanning again

It looks that we really need to setjmp to get the "register state".  I'm guessing that there is something not register related that ends up in the jmp_buf.  In any case, I found a way to ensure that we setjmp rarely enough that it doesn't matter that it's slow.
Comment 33 WebKit Commit Bot 2017-02-12 08:31:17 PST
Attachment 301304 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1139:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1148:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1174:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1184:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 13 in 59 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 34 Filip Pizlo 2017-02-12 09:43:21 PST
(In reply to comment #32)
> Created attachment 301304 [details]
> redid conservative scanning again
> 
> It looks that we really need to setjmp to get the "register state".  I'm
> guessing that there is something not register related that ends up in the
> jmp_buf.  In any case, I found a way to ensure that we setjmp rarely enough
> that it doesn't matter that it's slow.

Having "fixed" this, I'm getting the same crashes, even though I'm now using setjmp.  But previously, when I hacked the last patch to use setjmp, I did not get crashes.

Something weird is going on.
Comment 35 Build Bot 2017-02-12 09:48:53 PST
Comment on attachment 301304 [details]
redid conservative scanning again

Attachment 301304 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/3073743

New failing tests:
workers/bomb.html
Comment 36 Build Bot 2017-02-12 09:48:59 PST
Created attachment 301308 [details]
Archive of layout-test-results from ews104 for mac-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews104  Port: mac-elcapitan-wk2  Platform: Mac OS X 10.11.6
Comment 37 Build Bot 2017-02-12 09:57:54 PST
Comment on attachment 301304 [details]
redid conservative scanning again

Attachment 301304 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/3073746

New failing tests:
workers/bomb.html
Comment 38 Build Bot 2017-02-12 09:57:59 PST
Created attachment 301309 [details]
Archive of layout-test-results from ews125 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews125  Port: ios-simulator-wk2  Platform: Mac OS X 10.11.6
Comment 39 Filip Pizlo 2017-02-12 10:59:55 PST
(In reply to comment #34)
> (In reply to comment #32)
> > Created attachment 301304 [details]
> > redid conservative scanning again
> > 
> > It looks that we really need to setjmp to get the "register state".  I'm
> > guessing that there is something not register related that ends up in the
> > jmp_buf.  In any case, I found a way to ensure that we setjmp rarely enough
> > that it doesn't matter that it's slow.
> 
> Having "fixed" this, I'm getting the same crashes, even though I'm now using
> setjmp.  But previously, when I hacked the last patch to use setjmp, I did
> not get crashes.
> 
> Something weird is going on.

OK, it turns out that the setjmp thing was all a red herring.  This was another example of getting super unlucky: every time I turned off my custom stack scan and switched to setjmp, the bug seemed to go away.  In reality, the bug has a 1/2 chance of manifesting, and so sometimes you'll have a good streak.  I had good streams exactly when I used setjmp.

The real bug is that GC shutdown was not working right when the collector thread thread relinquished the conn.  The GC would keep running as the VM deleted things, and then the GC would crash.
Comment 40 Filip Pizlo 2017-02-12 11:01:56 PST
Created attachment 301311 [details]
more

I think I fixed it.
Comment 41 WebKit Commit Bot 2017-02-12 11:03:51 PST
Attachment 301311 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1184:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1193:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1219:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1229:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 21 in 59 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 42 Filip Pizlo 2017-02-12 12:35:18 PST
Created attachment 301315 [details]
more

Fixing things.
Comment 43 WebKit Commit Bot 2017-02-12 12:38:42 PST
Attachment 301315 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1184:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1193:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1219:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1229:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 21 in 59 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 44 Filip Pizlo 2017-02-12 14:18:34 PST
Created attachment 301317 [details]
the patch

Fixed windows build issue.
Comment 45 WebKit Commit Bot 2017-02-12 14:20:31 PST
Attachment 301317 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1184:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1193:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1219:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1229:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 21 in 59 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 46 Saam Barati 2017-02-12 15:42:11 PST
Comment on attachment 301317 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=301317&action=review

Will continue to look when I'm at a computer.

> Source/JavaScriptCore/heap/Heap.cpp:1530
> +            dataLog("Mutator already has the conn.\n");

Should be conditional
Comment 47 Build Bot 2017-02-12 15:55:54 PST
Comment on attachment 301317 [details]
the patch

Attachment 301317 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/3074864

New failing tests:
js/dom/gc-slot-visitor-parallel-drain-pings-runloop-when-done.html
Comment 48 Build Bot 2017-02-12 15:56:02 PST
Created attachment 301321 [details]
Archive of layout-test-results from ews116 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews116  Port: mac-elcapitan  Platform: Mac OS X 10.11.6
Comment 49 Filip Pizlo 2017-02-13 20:12:30 PST
(In reply to comment #46)
> Comment on attachment 301317 [details]
> the patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=301317&action=review
> 
> Will continue to look when I'm at a computer.
> 
> > Source/JavaScriptCore/heap/Heap.cpp:1530
> > +            dataLog("Mutator already has the conn.\n");
> 
> Should be conditional

Ooops!  I just removed it.
Comment 50 Filip Pizlo 2017-02-13 20:13:58 PST
Created attachment 301441 [details]
the patch
Comment 51 WebKit Commit Bot 2017-02-13 20:16:22 PST
Attachment 301441 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1184:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1193:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1219:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1229:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 21 in 60 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 52 Filip Pizlo 2017-02-14 09:25:09 PST
Whoa it passed tests.  That's something.
Comment 53 Filip Pizlo 2017-02-14 11:37:13 PST
Comment on attachment 301441 [details]
the patch

This seems to regress performance on low-core-count machines.  I must have goofed something up.
Comment 54 Filip Pizlo 2017-02-14 11:47:09 PST
It might be something like this: performIncrement immediately steals everything from the global mark stack, which prevents the parallel draining thread from doing its thing.

I bet we need to throttle performIncrement so that it never steals the whole shared stack if there are parallel markers.
Comment 55 Filip Pizlo 2017-02-14 14:19:49 PST
(In reply to comment #54)
> It might be something like this: performIncrement immediately steals
> everything from the global mark stack, which prevents the parallel draining
> thread from doing its thing.
> 
> I bet we need to throttle performIncrement so that it never steals the whole
> shared stack if there are parallel markers.

I found some weird stuff, but overall, it seems more iOS-specific than core-count-specific.  I'm still investigating.
Comment 56 Filip Pizlo 2017-02-14 14:48:24 PST
(In reply to comment #55)
> (In reply to comment #54)
> > It might be something like this: performIncrement immediately steals
> > everything from the global mark stack, which prevents the parallel draining
> > thread from doing its thing.
> > 
> > I bet we need to throttle performIncrement so that it never steals the whole
> > shared stack if there are parallel markers.
> 
> I found some weird stuff, but overall, it seems more iOS-specific than
> core-count-specific.  I'm still investigating.

Well, it now looks like I was being lied to all along.  The slow-down on iOS was also a fluke.  I made a bad build somehow.

But in the meantime I figured out a way to tune the collector on iOS that results in a further speed-up. Prior to this patch, the old non-stochastic space-time scheduler had a bad time because of timing jitter that resulted from the collector thread and mutator thread handing off to each other. But this patch removes the hand-off: the mutator thread gets to always run. It turns out that removing the incremental mode (gcIncrementScale=0) and disabling the stochastic scheduler is a win on 2-core configurations. It's a win on iOS and on Mac.

I'll keep experimenting.
Comment 57 Filip Pizlo 2017-02-14 14:50:14 PST
Created attachment 301550 [details]
more

Did more iOS fixing and tuning.  I still have more work to do.
Comment 58 Filip Pizlo 2017-02-14 14:53:35 PST
Created attachment 301551 [details]
patch from other computer
Comment 59 Filip Pizlo 2017-02-14 16:05:30 PST
Created attachment 301562 [details]
the patch
Comment 60 WebKit Commit Bot 2017-02-14 16:08:31 PST
Attachment 301562 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1218:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1244:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1254:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 20 in 61 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 61 Build Bot 2017-02-14 18:28:22 PST
Comment on attachment 301562 [details]
the patch

Attachment 301562 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/3118955

New failing tests:
js/dom/gc-slot-visitor-parallel-drain-pings-runloop-when-done.html
Comment 62 Build Bot 2017-02-14 18:28:28 PST
Created attachment 301571 [details]
Archive of layout-test-results from ews115 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-elcapitan  Platform: Mac OS X 10.11.6
Comment 63 Filip Pizlo 2017-02-16 10:21:10 PST
(In reply to comment #61)
> Comment on attachment 301562 [details]
> the patch
> 
> Attachment 301562 [details] did not pass mac-debug-ews (mac):
> Output: http://webkit-queues.webkit.org/results/3118955
> 
> New failing tests:
> js/dom/gc-slot-visitor-parallel-drain-pings-runloop-when-done.html

I'm investigating whether this is an actual deadlock, or if it's just that the test takes too long.  Could easily be the latter.  I'll shorten the test.
Comment 64 Filip Pizlo 2017-02-16 10:24:11 PST
Created attachment 301781 [details]
the patch

Fixing that silly test.
Comment 65 WebKit Commit Bot 2017-02-16 10:26:39 PST
Attachment 301781 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1218:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1244:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1254:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 20 in 61 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 66 Keith Miller 2017-02-16 11:33:25 PST
Comment on attachment 301781 [details]
the patch

r=me.
Comment 67 Filip Pizlo 2017-02-16 13:15:46 PST
Doing one more little round of testing and then I'll land.
Comment 68 Filip Pizlo 2017-02-16 13:18:58 PST
Created attachment 301808 [details]
patch for landing
Comment 69 WebKit Commit Bot 2017-02-16 13:22:02 PST
Attachment 301808 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:947:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1218:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1244:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1254:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 21 in 61 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 70 Filip Pizlo 2017-02-16 13:42:42 PST
*** Bug 166827 has been marked as a duplicate of this bug. ***
Comment 71 Filip Pizlo 2017-02-16 14:31:58 PST
Mac EWS sees a red tree, but I think I can land anyway because this patch has been through EWS a bunch of times already.
Comment 72 Filip Pizlo 2017-02-16 14:36:02 PST
Landed in https://trac.webkit.org/changeset/212466
Comment 73 Csaba Osztrogonác 2017-02-17 02:30:44 PST
(In reply to comment #72)
> Landed in https://trac.webkit.org/changeset/212466

FYI, it made 1000 JSC tests crash on AArch64, see bug168502 for details.
Comment 75 WebKit Commit Bot 2017-02-19 14:06:32 PST
Re-opened since this is blocked by bug 168577
Comment 76 Filip Pizlo 2017-02-19 17:29:54 PST
Created attachment 302100 [details]
patch for relanding
Comment 77 Filip Pizlo 2017-02-19 17:36:15 PST
Created attachment 302101 [details]
better patch for relanding

Readded changelogs, removed that silly GC runloop LayoutTest.
Comment 78 WebKit Commit Bot 2017-02-19 20:01:13 PST
Attachment 302101 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:946:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1217:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1243:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1253:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 21 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 79 Ryosuke Niwa 2017-02-19 22:36:32 PST
Rolled out the Cloop build fix in https://trac.webkit.org/changeset/212624 as CLoop builders can't build WebKit with it.
Comment 80 Filip Pizlo 2017-02-20 13:52:16 PST
Created attachment 302170 [details]
more
Comment 81 WebKit Commit Bot 2017-02-20 13:57:34 PST
Attachment 302170 [details] did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/RunningScope.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/heap/CollectorPhase.h:64:  The parameter name "phase" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/ParallelHelperPool.cpp:98:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/IncrementalSweeper.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/bindings/js/CommonVM.cpp:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/ForwardingHeaders/heap/MachineStackMarker.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WebCore/ForwardingHeaders/heap/GCFinalizationCallback.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
ERROR: Source/WTF/wtf/NumberOfCores.cpp:53:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/ParallelHelperPool.h:172:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:48:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:66:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:88:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/heap/RegisterState.h:115:  The parameter name """" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:946:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1217:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1243:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:1253:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 21 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 82 Filip Pizlo 2017-02-21 17:00:57 PST
Relanded in https://trac.webkit.org/changeset/212778.

The problem with the previous patch was bad use of RAII scope.
Comment 83 Alexey Proskuryakov 2017-03-18 00:27:53 PDT
The fix was re-landed without a test (js/dom/gc-slot-visitor-parallel-drain-pings-runloop-when-done.html). Filip, is that expected?
Comment 84 Filip Pizlo 2017-03-18 07:54:50 PDT
(In reply to comment #83)
> The fix was re-landed without a test
> (js/dom/gc-slot-visitor-parallel-drain-pings-runloop-when-done.html). Filip,
> is that expected?

Yes. That test was not very valuable. And it was flaky, and needed a bunch of new infrastructure. But if the thing it was testing regressed, we would have a perf and memory regression and we would catch it anyway.