Bug 159929 - The default testing mode should not involve disabling the FTL JIT
Summary: The default testing mode should not involve disabling the FTL JIT
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on: 160058
Blocks:
  Show dependency treegraph
 
Reported: 2016-07-19 10:59 PDT by Ryan Haddad
Modified: 2016-07-22 02:24 PDT (History)
7 users (show)

See Also:


Attachments
the patch (18.23 KB, patch)
2016-07-19 18:41 PDT, Filip Pizlo
mark.lam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Haddad 2016-07-19 10:59:41 PDT
https://build.webkit.org/builders/Apple%20El%20Capitan%20Debug%20JSC%20%28Tests%29/builds/3491/steps/jscore-test/logs/stdio

** The following JSC stress test failures have been introduced:
	mozilla-tests.yaml/ecma/FunctionObjects/15.3.1.1-3.js.mozilla-ftl-eager-no-cjit-validate-phases
	mozilla-tests.yaml/ecma/FunctionObjects/15.3.2.1-3.js.mozilla-ftl-eager-no-cjit-validate-phases
	mozilla-tests.yaml/ecma/FunctionObjects/15.3.5-1.js.mozilla-ftl-eager-no-cjit-validate-phases
Comment 1 Filip Pizlo 2016-07-19 11:09:33 PDT
Looking at this now.

It's OK to roll it out.  But it's likely I'll have a fix within an hour.
Comment 2 Filip Pizlo 2016-07-19 12:00:45 PDT
Hmm, these are just timeouts.  I'm not sure yet what the best thing to do is.  Debug timeouts are not very interesting.
Comment 3 Filip Pizlo 2016-07-19 15:12:30 PDT
Looking at these now.  I'm tempted to say that we should just not run these tests in the ftl-eager-no-cjit-validate-phases configuration.  I think that the increase in DFG/FTL coverage, particularly with the addition of eval support, has made these tests much slower.  That's expected behavior for eager compilation tests: they run slower when the compiler gets better.
Comment 4 Filip Pizlo 2016-07-19 16:51:18 PDT
Wow, this test:

ecma/FunctionObjects/15.3.1.1-3.js

takes a really long time when running in debug with force eager compilation.  That's probably not a bug in the VM, but I'll check anyway.

Most likely I'll end up disabling forceEagerCompilation runs of this test.
Comment 5 Filip Pizlo 2016-07-19 16:53:08 PDT
(In reply to comment #4)
> Wow, this test:
> 
> ecma/FunctionObjects/15.3.1.1-3.js
> 
> takes a really long time when running in debug with force eager compilation.
> That's probably not a bug in the VM, but I'll check anyway.
> 
> Most likely I'll end up disabling forceEagerCompilation runs of this test.

Wow, 1 minute 33 seconds on my machine!
Comment 6 Filip Pizlo 2016-07-19 16:58:04 PDT
(In reply to comment #5)
> (In reply to comment #4)
> > Wow, this test:
> > 
> > ecma/FunctionObjects/15.3.1.1-3.js
> > 
> > takes a really long time when running in debug with force eager compilation.
> > That's probably not a bug in the VM, but I'll check anyway.
> > 
> > Most likely I'll end up disabling forceEagerCompilation runs of this test.
> 
> Wow, 1 minute 33 seconds on my machine!

Heh it spends 30 seconds compiling some crazy DFG function.  That's not a real bug.  It's slow because we're in debug and we're compiling synchronously, 'cause that's the test mode.
Comment 7 Filip Pizlo 2016-07-19 18:13:41 PDT
Even in release, this test takes 5.7sec.  That's way too long!
Comment 8 Filip Pizlo 2016-07-19 18:14:01 PDT
It takes 50ms without forceEagerCompilation, so it's not a VM bug.
Comment 9 Filip Pizlo 2016-07-19 18:41:12 PDT
Created attachment 284076 [details]
the patch
Comment 10 Mark Lam 2016-07-19 18:44:13 PDT
Comment on attachment 284076 [details]
the patch

rs=me
Comment 11 Filip Pizlo 2016-07-19 18:46:44 PDT
Landed in https://trac.webkit.org/changeset/203440
Comment 12 Csaba Osztrogonác 2016-07-19 23:51:39 PDT
(In reply to comment #11)
> Landed in https://trac.webkit.org/changeset/203440

Great, now 32 bit bots (and AArch64 Linux) became terrible slow, because they run FTL tests just for fun.
Comment 13 Csaba Osztrogonác 2016-07-20 02:08:06 PDT
(In reply to comment #12)
> (In reply to comment #11)
> > Landed in https://trac.webkit.org/changeset/203440
> 
> Great, now 32 bit bots (and AArch64 Linux) became terrible slow, because
> they run FTL tests just for fun.

Just a quick statistic:
- AArch64, ARMv7 Thumb2, ARMv7 Traditional and GTK ARM bots
now run 36.000 tests instead of 20.000, the extra 16.000 tests
don't add anything for testing, they are simply duplicated tests.
- runtime on AArch64 bot: 73 mins -> 112 mins
- runtime on ARMv7 Thumb2 bot: 109 mins -> 168 mins
- runtime on ARMv7 ARM traditional bot: 186 mins -> 260 mins
- runtime on ARM GTK (Thumb2) bot: 48 mins -> 76 mins

"So, maybe rather than preserving this broken feature, we should create
something that (a) acknowledges the fact that the FTL is the default on those
platforms that support it and (b) avoids running no-ftl tests on precisely those
platforms that don't have FTL."

OK, so when do you plan to fix this completely broken jsc-stress-tests
script not to run extra tests on 32-bit platforms which won't have
FTL JIT ever in the future? It's not fair to increase the test runtime
on 32-bit platforms just to paint your extra slow debug bot green.
Comment 14 Csaba Osztrogonác 2016-07-21 06:28:55 PDT
Not to mention that it completely broke the Apple Windows JSC testing
infrastructere.
Comment 15 Michael Saboff 2016-07-21 15:59:36 PDT
(In reply to comment #13)
> (In reply to comment #12)
> > (In reply to comment #11)
> > > Landed in https://trac.webkit.org/changeset/203440
> > 
> > Great, now 32 bit bots (and AArch64 Linux) became terrible slow, because
> > they run FTL tests just for fun.
> 
> Just a quick statistic:
> - AArch64, ARMv7 Thumb2, ARMv7 Traditional and GTK ARM bots
> now run 36.000 tests instead of 20.000, the extra 16.000 tests
> don't add anything for testing, they are simply duplicated tests.
> - runtime on AArch64 bot: 73 mins -> 112 mins
> - runtime on ARMv7 Thumb2 bot: 109 mins -> 168 mins
> - runtime on ARMv7 ARM traditional bot: 186 mins -> 260 mins
> - runtime on ARM GTK (Thumb2) bot: 48 mins -> 76 mins
> 
> "So, maybe rather than preserving this broken feature, we should create
> something that (a) acknowledges the fact that the FTL is the default on those
> platforms that support it and (b) avoids running no-ftl tests on precisely
> those
> platforms that don't have FTL."
> 
> OK, so when do you plan to fix this completely broken jsc-stress-tests
> script not to run extra tests on 32-bit platforms which won't have
> FTL JIT ever in the future? It's not fair to increase the test runtime
> on 32-bit platforms just to paint your extra slow debug bot green.

Created <https://bugs.webkit.org/show_bug.cgi?id=160058> to track the increased testing time.
Comment 16 Csaba Osztrogonác 2016-07-22 02:24:37 PDT
(In reply to comment #15)

> Created <https://bugs.webkit.org/show_bug.cgi?id=160058> to track the
> increased testing time.

Fix is in bug160033, waiting for review.