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
Created attachment 259564 [details] Patch
Oops, i need to ios32 restriction.
Created attachment 259572 [details] Patch
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"'
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"`
https://bugs.webkit.org/show_bug.cgi?id=148288 will take several time. So I'll continue to do this.
Created attachment 259585 [details] Patch
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.
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.
Created attachment 259634 [details] Patch
Comment on attachment 259634 [details] Patch r=me
(In reply to comment #11) > Comment on attachment 259634 [details] > Patch > > r=me Thank you :)
Committed r188767: <http://trac.webkit.org/changeset/188767>