Bug 148273

Summary: Skip no-llint tests that fail due to running out of executable memory after r188969
Product: WebKit Reporter: Michael Saboff <msaboff>
Component: JavaScriptCoreAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED FIXED    
Severity: Normal CC: fpizlo, msaboff, ossy, ysuzuki
Priority: P2    
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch msaboff: review+

Michael Saboff
Reported 2015-08-20 17:50:55 PDT
Beginning with http://trac.webkit.org/changeset/188696, the tests below started to fail on 32bit iOS devices due to running out of executable memory. The "no-llint" versions of these tests should be skipped for 32bit iOS. jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-int16array.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-int32array-overflow-values.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-int32array.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-int8array.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-uint16array.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-uint32array-overflow-values.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-uint32array.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-uint8array.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-uint8clampedarray.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/regress-141098.js.layout-no-llint Here is the traceback of one of the test: [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: Ran out of executable memory while allocating 1484 bytes. [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 1 0x433c4f JSC::LinkBuffer::allocate(unsigned long, void*, JSC::JITCompilationEffort) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 2 0x433cdd void JSC::LinkBuffer::copyCompactAndLinkCode<unsigned short>(JSC::MacroAssembler&, void*, JSC::JITCompilationEffort) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 3 0x35df49 JSC::JIT::privateCompile(JSC::JITCompilationEffort) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 4 0x2fc531 JSC::ScriptExecutable::prepareForExecutionImpl(JSC::ExecState*, JSC::JSFunction*, JSC::JSScope*, JSC::CodeSpecializationKind) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 5 0x3560cd JSC::Interpreter::execute(JSC::EvalExecutable*, JSC::ExecState*, JSC::JSValue, JSC::JSScope*) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 6 0x355f63 JSC::eval(JSC::ExecState*) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 7 0x37cfaf operationCallEval [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 8 0x7c45495 [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 9 0x7c3fb99 [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 10 0x4490d1 vmEntryToJavaScript [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 11 0x36af0b JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 12 0x358c31 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 13 0x1fda8f JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 14 0x795f1 jscmain(int, char**) [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 15 0x7910b main [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 16 0x34191873 <redacted> [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: ./test_script_855: line 2: 13988 Segmentation fault: 11 "$@" /System/Library/Frameworks/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true --useLLInt\=false resources/standalone-pre.js dfg-float32array.js resources/standalone-post.js [2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: ERROR: Unexpected exit code: 139
Attachments
Patch (8.65 KB, patch)
2015-08-20 19:24 PDT, Yusuke Suzuki
no flags
Patch (9.13 KB, patch)
2015-08-20 20:04 PDT, Yusuke Suzuki
no flags
Patch (9.88 KB, patch)
2015-08-20 22:14 PDT, Yusuke Suzuki
no flags
Patch (9.63 KB, patch)
2015-08-21 11:21 PDT, Yusuke Suzuki
msaboff: review+
Yusuke Suzuki
Comment 1 2015-08-20 19:24:24 PDT
Yusuke Suzuki
Comment 2 2015-08-20 19:26:15 PDT
Oops, i need to ios32 restriction.
Yusuke Suzuki
Comment 3 2015-08-20 20:04:54 PDT
Michael Saboff
Comment 4 2015-08-20 20:38:12 PDT
Comment on attachment 259572 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=259572&action=review Thanks for addressing this quickly. Basically looks good. I suggested some changes to one ChangeLog entry. Do change the "if" clause for every test to include 'and $hostOS == "darwin"' > LayoutTests/ChangeLog:11 > + It consumes much memory and when no-llint, some tests failed due to "ran out of executable memory". > + This patch temporary skips failing tests. Since the size of the fixed allocator is defined by the architecture, > + the failure will be caused when the architecture is ARM. this patch applies the configuration when the architecture is ARM. I think it sounds better if you say something like: That change increases JIT memory usage. This is causing the "no-llint" variation of some tests to fail due to "ran out of executable memory". Since the size of the fixed allocator is defined by the architecture and the tests are only failing on iOS ARM devices, skip those tests. > LayoutTests/js/script-tests/dfg-float32array.js:3 > +//@ noNoLLIntRunLayoutTest if $architecture == "arm" Since the failures have only been reported on iOS, change this to 'if $architecture == "arm" and $hostOS == "darwin"'
Yusuke Suzuki
Comment 5 2015-08-20 20:42:10 PDT
Comment on attachment 259572 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=259572&action=review Thank you for your review! >> LayoutTests/ChangeLog:11 >> + the failure will be caused when the architecture is ARM. this patch applies the configuration when the architecture is ARM. > > I think it sounds better if you say something like: > That change increases JIT memory usage. This is causing the "no-llint" variation of some tests to fail due to "ran out of executable memory". > Since the size of the fixed allocator is defined by the architecture and the tests are only failing on iOS ARM devices, skip those tests. Sounds nice! I'll fix the description soon. >> LayoutTests/js/script-tests/dfg-float32array.js:3 >> +//@ noNoLLIntRunLayoutTest if $architecture == "arm" > > Since the failures have only been reported on iOS, change this to 'if $architecture == "arm" and $hostOS == "darwin"' Oh, OK. I'll change it to `if $architecture == "arm" and $hostOS == "darwin"`
Yusuke Suzuki
Comment 6 2015-08-20 22:02:39 PDT
https://bugs.webkit.org/show_bug.cgi?id=148288 will take several time. So I'll continue to do this.
Yusuke Suzuki
Comment 7 2015-08-20 22:14:23 PDT
Michael Saboff
Comment 8 2015-08-21 06:31:25 PDT
Comment on attachment 259585 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=259585&action=review Looks good, just another ChangeLog comment. > LayoutTests/ChangeLog:11 > + That change increases JIT memory usage. This is causing the "no-llint" variation of some tests to fail due to "ran out of executable memory". > + Since the size of the fixed allocator is defined by the architecture and the tests are only failing on iOS ARM devices, skip those tests. > + Eliminate this text since you have a more specific explanation below.
Yusuke Suzuki
Comment 9 2015-08-21 11:09:24 PDT
Comment on attachment 259585 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=259585&action=review Thank you! I'll upload the revised one soon. >> LayoutTests/ChangeLog:11 >> + > > Eliminate this text since you have a more specific explanation below. Thanks. Dropped.
Yusuke Suzuki
Comment 10 2015-08-21 11:21:48 PDT
Michael Saboff
Comment 11 2015-08-21 12:25:01 PDT
Comment on attachment 259634 [details] Patch r=me
Yusuke Suzuki
Comment 12 2015-08-21 12:30:13 PDT
(In reply to comment #11) > Comment on attachment 259634 [details] > Patch > > r=me Thank you :)
Yusuke Suzuki
Comment 13 2015-08-21 12:33:14 PDT
Note You need to log in before you can comment on or make changes to this bug.