Closed
Bug 635155
Opened 14 years ago
Closed 14 years ago
Get full JIT-tests coverage back
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
blocking2.0 | --- | - |
People
(Reporter: n.nethercote, Assigned: n.nethercote)
References
(Blocks 1 open bug)
Details
(Whiteboard: fixed-in-tracemonkey)
Attachments
(1 file)
(deleted),
patch
|
dmandelin
:
review+
|
Details | Diff | Splinter Review |
Bug 631951 added the -a flag to the shell, to request the methodjit to always be used. But it's not on by default. So our jit-test coverage has gone down. Two steps are needed to fix:
- js/src/Makefile.in needs to run --jitflags=m,j,mj,mjp,am,amj,amjp,amd. ("d" puts JM in debug mode, which disables tracing and greatly changes how compilation occurs; dvander says md isn't necessary if we have amd)
- If a test has |mjit-always| and --jitflags contains 'a', currently they'll cancel each other out. This should not happen.
Assignee | ||
Comment 1•14 years ago
|
||
I just tried adding an abort to finishThisUp(), which basically means that the JS engine will abort if the method JIT is invoked at all.
With a --jitflags=m run of jit_test.py, I got 319 failures out of 1067 tests. That means for 748 of the tests the method JIT isn't being run! Our collective asses are hanging out.
Nominating as a hardblocker, even though it's NPOTB, because such a glaring hole in our testing is asking for trouble.
Assignee: nnethercote → general
Status: ASSIGNED → NEW
blocking2.0: --- → ?
Comment 2•14 years ago
|
||
This should be fixed immediately, but I don't see why this should block FF4. There is no indication that any of those 319 tests actually break the method jit. If you find any concrete failures, please file and nominate those. Recommending blocking-.
Assignee | ||
Comment 3•14 years ago
|
||
(In reply to comment #2)
> There is no indication that any of those 319 tests actually break the method
> jit.
It's the 748 that don't invoke the method JIT that I'm worried about!
Comment 4•14 years ago
|
||
Sure. Fix it. Test it. If anything breaks and its serious we might have to block on it.
Updated•14 years ago
|
blocking2.0: ? → -
Assignee | ||
Comment 5•14 years ago
|
||
Pretty simple fix. I'm requesting 2.0 approval in advance to avoid some inevitable back-and-forth -- dmandelin has approval powers.
The good news is that testBug634590.js is the only failure, for all the configurations involving -a and -m, which bug 636820 already covers:
FAILURES:
-a -m /home/njn/moz/ws7/js/src/jit-test/tests/basic/testBug634590.js
-a -m -j /home/njn/moz/ws7/js/src/jit-test/tests/basic/testBug634590.js
-a -m -j -p /home/njn/moz/ws7/js/src/jit-test/tests/basic/testBug634590.js
-a -m -d /home/njn/moz/ws7/js/src/jit-test/tests/basic/testBug634590.js
Assignee: general → nnethercote
Status: NEW → ASSIGNED
Attachment #515539 -
Flags: review?(dmandelin)
Attachment #515539 -
Flags: approval2.0?
Comment 6•14 years ago
|
||
Comment on attachment 515539 [details] [diff] [review]
patch
pre-approved to land with a=beltzner once it passes review, not before!
Attachment #515539 -
Flags: approval2.0?
Comment 7•14 years ago
|
||
Comment on attachment 515539 [details] [diff] [review]
patch
> def get_test_cmd(path, jitflags, lib_dir):
> libdir_var = lib_dir
> if not libdir_var.endswith('/'):
> libdir_var += '/'
> expr = "const platform=%r; const libdir=%r;"%(sys.platform, libdir_var)
>- return [ JS ] + jitflags + [ '-e', expr, '-f', os.path.join(lib_dir, 'prolog.js'),
>+ # We may have specified '-a' or '-d' twice: once via --jitflags, once
>+ # via the "|jit-test|" line. Remove dups because they are toggles.
>+ jitflags_no_dups = []
>+ [jitflags_no_dups.append(i) for i in jitflags if not jitflags_no_dups.count(i)]
>+ return [ JS ] + jitflags_no_dups + [ '-e', expr, '-f', os.path.join(lib_dir, 'prolog.js'),
> '-f', path ]
This can be better, e.g.:
+ return ([ JS ] + list(set(jitflags)) +
+ [ '-e', expr, '-f', os.path.join(lib_dir, 'prolog.js'), '-f', path ])
(In some parallel universes, I would prefer to have a class for building toggle flag options but that is overkill for something that is likely about to change anyway.)
r=me with that version or similarly elegant dup elimination.
I tried the patch locally and I got some failures on testBug634590, bug540187, and bug540243. I'm not sure if that's real or what, but of course this can land and stick only if we're still all green with it.
Attachment #515539 -
Flags: review?(dmandelin) → review+
Assignee | ||
Comment 8•14 years ago
|
||
I applied the patch from bug 637390 as well, since it has r+ and is NPOTB -- it just increases the testing coverage a bit more by including interpreter-only runs.
http://hg.mozilla.org/tracemonkey/rev/f85299200bd3
Comment 9•14 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Whiteboard: fixed-in-tracemonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•