Bug 152248 - [meta] Make B3 work on Linux
Summary: [meta] Make B3 work on Linux
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Csaba Osztrogonác
Depends on: 150794 151618 151619 151620 151621 151622 151624 151857 151860 152120 152122 152123 152124 152126 152887 153126 153232 153422 153478 153644 153647
  Show dependency treegraph
Reported: 2015-12-14 04:51 PST by Csaba Osztrogonác
Modified: 2016-02-08 02:28 PST (History)
6 users (show)

See Also:

list of the failing tests (11.76 KB, text/plain)
2016-01-08 06:56 PST, Csaba Osztrogonác
no flags Details
list of the failing tests on AArch64 (9.17 KB, text/plain)
2016-01-29 05:19 PST, Csaba Osztrogonác
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Csaba Osztrogonác 2015-12-14 04:51:46 PST
The goal: Make B3 based FTL JIT build and work on Linux.
(work == all tests pass, no performance regression)
Comment 1 Csaba Osztrogonác 2016-01-08 06:56:45 PST
Created attachment 268545 [details]
list of the failing tests

Quick summary: There are only 144 JSC stress test failures remaining from 30361.

Results for JSC stress tests:
    144 failures found.
Comment 2 Csaba Osztrogonác 2016-01-11 06:46:59 PST
There are only 6 failures on Linux with B3 on r194847:

** The following JSC stress test failures have been introduced:

Results for JSC stress tests:
    6 failures found.
Comment 3 Csaba Osztrogonác 2016-01-29 05:19:15 PST
Created attachment 270201 [details]
list of the failing tests on AArch64

I tested B3-FTL on AArch64 Linux, testb3 and testair pass
and there are 126 JSC stress tests failure - list attached.
( Without FTL JIT we have 20-40 crashes long time ago on AArch64 - bug151486 )
Comment 4 Yusuke Suzuki 2016-01-30 09:17:24 PST
When building B3 enabled JSC on Linux x86_64 (GTK port) with debug mode, testb3 still fails.

testBitNotOnBooleanAndBranch32(-1, int32-min)...
1   0x7ffff6e6ecdc /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1e) [0x7ffff6e6ecdc]
2   0x46f0f6 /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/bin/testb3() [0x46f0f6]
3   0x4b6145 /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/bin/testb3() [0x4b6145]
4   0x6183a8 /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/bin/testb3() [0x6183a8]
5   0x4c40f1 /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/bin/testb3() [0x4c40f1]
6   0x5ab4e9 /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/bin/testb3() [0x5ab4e9]
7   0x7ffff68f26a2 /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZNKSt8functionIFvvEEclEv+0x32) [0x7ffff68f26a2]
8   0x7ffff6e8a27d /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x1f8927d) [0x7ffff6e8a27d]
9   0x7ffff6ebdf8e /home/yusuke/dev/WebKit/WebKitBuild/b3-linux/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x1fbcf8e) [0x7ffff6ebdf8e]
10  0x7ffff31ec182 /lib/x86_64-linux-gnu/libpthread.so.0(+0x8182) [0x7ffff31ec182]
11  0x7ffff440c47d /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7ffff440c47d]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffad3fc700 (LWP 16618)]
0x00007ffff6e6ece1 in WTFCrash () at ../../../Source/WTF/wtf/Assertions.cpp:321
321         *(int *)(uintptr_t)0xbbadbeef = 0;
(gdb) info stack
#0  0x00007ffff6e6ece1 in WTFCrash () at ../../../Source/WTF/wtf/Assertions.cpp:321
#1  0x000000000046f0f6 in (anonymous namespace)::testBitNotOnBooleanAndBranch32 (a=0, b=0) at ../../../Source/JavaScriptCore/b3/testb3.cpp:2735
#2  0x00000000004b6145 in (anonymous namespace)::<lambda()>::operator()(void) const (__closure=0x7fffaf5f9f28) at ../../../Source/JavaScriptCore/b3/testb3.cpp:10506
#3  0x00000000006183a8 in WTF::SharedTaskFunctor<void(), (anonymous namespace)::run(char const*)::<lambda()> >::run(void) (this=0x7fffaf5f9f18) at ../../../Source/WTF/wtf/SharedTask.h:90
#4  0x00000000004c40f1 in (anonymous namespace)::<lambda()>::operator()(void) const (__closure=0x8541f0) at ../../../Source/JavaScriptCore/b3/testb3.cpp:11404
#5  0x00000000005ab4e9 in std::_Function_handler<void(), (anonymous namespace)::run(char const*)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/4.9/functional:2039
#6  0x00007ffff68f26a2 in std::function<void ()>::operator()() const (this=0x7fffad3fbe50) at /usr/include/c++/4.9/functional:2439
#7  0x00007ffff6e8a27d in WTF::threadEntryPoint (contextData=0x7fffaf1d0140) at ../../../Source/WTF/wtf/Threading.cpp:58
#8  0x00007ffff6ebdf8e in WTF::wtfThreadEntryPoint (param=0x7fffaedc6f80) at ../../../Source/WTF/wtf/ThreadingPthreads.cpp:164
#9  0x00007ffff31ec182 in start_thread (arg=0x7fffad3fc700) at pthread_create.c:312
#10 0x00007ffff440c47d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Comment 5 Yusuke Suzuki 2016-01-30 09:24:26 PST
Ah, ignore that, I've just modified some part of B3 to test https://bugs.webkit.org/show_bug.cgi?id=153647