Commit abdce96
Upgrade to WebkitGTK 2.24.2 and workaround __clear_cache issue o… (#114)
# Summary
This PR includes three major changes:
1. Enable JIT back
Community reported sensible performance drop from the no-JIT version, so I'd like to enable JIT back.
2. Upgrade to WebKitGTK 2.24.2.
This seems to fix previous JSC crashes on Samsung S7 Edge.
This version includes JIT new bytecode format as described from WebKit blog:
https://webkit.org/blog/9329/a-new-bytecode-format-for-javascriptcore/
After the major change, x86 JIT is not supported and arm32 support was contributed by WebKit community (Thanks to Igalia).
From my understanding, original JSC crashes happen at `operationLinkDirectCall()`. After the new bytecode format, there is no direct link call from Baseline JIT. Since we've disabled DFG JIT and FTL JIT, there's no call flow that will hit to `operationLinkDirectCall()`. That is why no more similar crash happens.
3. Workaround for ARM Cortex-A53 cache flush instruction issue:
This is from V8's workaround and I believe it is worth to apply into JSC Android as well.
https://codereview.chromium.org/1921173004
ARM Cortex-A53 had some errata for original "cvau" instruction, and officially recommended to use
"civac" instruction instead.
LLVM compiler-rt's `__clear_cache` still uses "cvau" and my patch replaced to "civac".
## Test Plan
1. Run measure scripts on my Samsung Note 5.
2. Provide an [experimented version](https://www.npmjs.com/package/@kudo-ci/jsc-android/v/245459.9000.0) for community who previously reported JSC crash and seems no more crashes happened.
## Measurement
Added "@kudo-ci/jsc-android@245459-no-dfg-jit" to previous measurement result.
The new result could compared to 241213-no-dfg-jit version.
There are some performance improvement from the comparison.
https://docs.google.com/spreadsheets/d/1hqX3ai-NCpN_J6YQDTKnKNBctWnMFA6EyOdVhPvwUas/edit#gid=193471288
<img width="735" alt="Screen Shot 2019-06-24 at 11 46 00 PM" src="https://user-images.githubusercontent.com/46429/60032978-44a1c480-96da-11e9-9eca-863aae3efe05.png">
<img width="413" alt="Screen Shot 2019-06-24 at 11 45 16 PM" src="https://user-images.githubusercontent.com/46429/60032980-44a1c480-96da-11e9-8f41-df30fa74235b.png">
<img width="414" alt="Screen Shot 2019-06-24 at 11 45 08 PM" src="https://user-images.githubusercontent.com/46429/60032981-453a5b00-96da-11e9-92a3-63318a7bb5fa.png">
<img width="427" alt="Screen Shot 2019-06-24 at 11 45 00 PM" src="https://user-images.githubusercontent.com/46429/60032982-453a5b00-96da-11e9-8d63-453ecc94c827.png">
<img width="426" alt="Screen Shot 2019-06-24 at 11 44 56 PM" src="https://user-images.githubusercontent.com/46429/60032983-453a5b00-96da-11e9-86c4-e5db0f6d86a9.png">1 parent c54f807 commit abdce96
File tree
16 files changed
+126
-106
lines changed- patches
- scripts
- compile
16 files changed
+126
-106
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
| 2 | + | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
| 19 | + | |
19 | 20 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
6 | 5 | | |
7 | 6 | | |
8 | | - | |
9 | | - | |
| 7 | + | |
| 8 | + | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
13 | | - | |
14 | | - | |
| 12 | + | |
| 13 | + | |
15 | 14 | | |
16 | 15 | | |
17 | | - | |
18 | | - | |
| 16 | + | |
| 17 | + | |
19 | 18 | | |
20 | 19 | | |
21 | 20 | | |
22 | | - | |
23 | | - | |
| 21 | + | |
| 22 | + | |
24 | 23 | | |
25 | 24 | | |
26 | | - | |
27 | | - | |
| 25 | + | |
| 26 | + | |
28 | 27 | | |
29 | 28 | | |
30 | 29 | | |
0 commit comments