| CARVIEW |
Navigation Menu
-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Add feature to disable JIT support in mozjs at compile-time #37972
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
ports/servoshell/Cargo.toml
Outdated
| [features] | ||
| crown = ["libservo/crown"] | ||
| debugmozjs = ["libservo/debugmozjs"] | ||
| default = ["max_log_level", "webgpu", "webxr"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before merging, the jit feature should be added to the default features of servoshell (perhaps even libservo).
Currently disabled to make sure everything works as expected with the feature off.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed that defaulting to enabled for libservo is the right call.
|
🔨 Triggering try run (#16185098266) for OpenHarmony |
|
✨ Try run (#16185098266) succeeded. |
2ac1b9a to
8d743d5
Compare
|
🔨 Triggering try run (#19534538460) for OpenHarmony |
|
✨ Try run (#19534538460) succeeded. |
|
🔨 Triggering try run (#19535631878) for Linux (Unit Tests, Build libservo, WPT, Bencher), Windows (Unit Tests, Build libservo), Android, OpenHarmony, Lint |
8d743d5 to
f54a21f
Compare
|
Test results for linux-wpt from try job (#19535631878): Flaky unexpected result (30)
Stable unexpected results that are known to be intermittent (24)
|
|
|
|
🔨 Triggering try run (#19541435116) for Linux (Unit Tests, Build libservo, WPT, Bencher), Windows (Unit Tests, Build libservo), Android, OpenHarmony, Lint |
|
| Branch | 37972/PR |
| Testbed | HUAWEI Mate 60 Pro |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | Data | Measure (units) x 1e3 | Latency | milliseconds (ms) | Memory | Bytes | score | Measure (units) |
|---|---|---|---|---|---|---|---|---|
| release/E2E/file:///parse_from_string.html/ | 📈 view plot | 1.69 units x 1e3 | ||||||
| release/E2E/https://www.google.com/JS/gc-heap/admin | 📈 view plot | 26,752.00 | ||||||
| release/E2E/https://www.google.com/JS/gc-heap/decommitted | 📈 view plot | 409,600.00 | ||||||
| release/E2E/https://www.google.com/JS/gc-heap/unused | 📈 view plot | 136,016.00 | ||||||
| release/E2E/https://www.google.com/JS/gc-heap/used | 📈 view plot | 476,208.00 | ||||||
| release/E2E/https://www.google.com/JS/malloc-heap | 📈 view plot | 5,053,319.00 | ||||||
| release/E2E/https://www.google.com/JS/non-heap | 📈 view plot | 262,144.00 | ||||||
| release/E2E/https://www.google.com/LayoutThread/box-tree | 📈 view plot | 108,771.00 | ||||||
| release/E2E/https://www.google.com/LayoutThread/display-list | 📈 view plot | 0.00 | ||||||
| release/E2E/https://www.google.com/LayoutThread/font-context | 📈 view plot | 8,616.00 | ||||||
| release/E2E/https://www.google.com/LayoutThread/fragment-tree | 📈 view plot | 112.00 | ||||||
| release/E2E/https://www.google.com/LayoutThread/stacking-context-tree | 📈 view plot | 14,080.00 | ||||||
| release/E2E/https://www.google.com/LayoutThread/stylist | 📈 view plot | 5,504.00 | ||||||
| release/E2E/https://www.google.com/Load | 📈 view plot | 634.00 ms | ||||||
| release/E2E/https://www.google.com/Resident | 📈 view plot | 184,296,243.00 | ||||||
| release/E2E/https://www.google.com/image-cache | 📈 view plot | 2,328.00 | ||||||
| release/E2E/https://www.google.com/resident-smaps | 📈 view plot | 187,169,996.00 | ||||||
| release/E2E/https://www.servo.org/Load | 📈 view plot | 965.41 ms | ||||||
| release/E2E/https://www.servo.org/Resident | 📈 view plot | 365,160,857.00 | ||||||
| release/E2E/https://www.servo.org/resident-smaps | 📈 view plot | 368,122,265.00 | ||||||
| release/Speedometer/Charts-observable-plot | 📈 view plot | 712.54 ms | ||||||
| release/Speedometer/Charts-observable-plot/Dotted | 📈 view plot | 87.75 ms | ||||||
| release/Speedometer/Charts-observable-plot/Dotted/Async | 📈 view plot | 10.60 ms | ||||||
| release/Speedometer/Charts-observable-plot/Dotted/Sync | 📈 view plot | 77.15 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 20 | 📈 view plot | 349.36 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 20/Async | 📈 view plot | 17.79 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 20/Sync | 📈 view plot | 331.57 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 6 | 📈 view plot | 275.43 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 6/Async | 📈 view plot | 9.12 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 6/Sync | 📈 view plot | 266.32 ms | ||||||
| release/Speedometer/Geomean | 📈 view plot | 625.07 ms | ||||||
| release/Speedometer/Iteration-0-Total | 📈 view plot | 802.22 ms | ||||||
| release/Speedometer/Iteration-1-Total | 📈 view plot | 790.45 ms | ||||||
| release/Speedometer/Iteration-2-Total | 📈 view plot | 788.35 ms | ||||||
| release/Speedometer/Iteration-3-Total | 📈 view plot | 783.61 ms | ||||||
| release/Speedometer/Iteration-4-Total | 📈 view plot | 794.18 ms | ||||||
| release/Speedometer/Iteration-5-Total | 📈 view plot | 793.31 ms | ||||||
| release/Speedometer/Iteration-6-Total | 📈 view plot | 792.62 ms | ||||||
| release/Speedometer/Iteration-7-Total | 📈 view plot | 1,015.44 ms | ||||||
| release/Speedometer/Iteration-8-Total | 📈 view plot | 1,042.66 ms | ||||||
| release/Speedometer/Iteration-9-Total | 📈 view plot | 1,042.04 ms | ||||||
| release/Speedometer/Score | 📈 view plot | 1.62 units | ||||||
| release/Speedometer/TodoMVC-Angular | 📈 view plot | 870.94 ms | ||||||
| release/Speedometer/TodoMVC-Angular/Adding100Items | 📈 view plot | 418.80 ms | ||||||
| release/Speedometer/TodoMVC-Angular/Adding100Items/Async | 📈 view plot | 28.18 ms | ||||||
| release/Speedometer/TodoMVC-Angular/Adding100Items/Sync | 📈 view plot | 390.62 ms | ||||||
| release/Speedometer/TodoMVC-Angular/CompletingAllItems | 📈 view plot | 276.61 ms | ||||||
| release/Speedometer/TodoMVC-Angular/CompletingAllItems/Async | 📈 view plot | 31.37 ms | ||||||
| release/Speedometer/TodoMVC-Angular/CompletingAllItems/Sync | 📈 view plot | 245.23 ms | ||||||
| release/Speedometer/TodoMVC-Angular/DeletingAllItems | 📈 view plot | 175.53 ms | ||||||
| release/Speedometer/TodoMVC-Angular/DeletingAllItems/Async | 📈 view plot | 6.87 ms | ||||||
| release/Speedometer/TodoMVC-Angular/DeletingAllItems/Sync | 📈 view plot | 168.66 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5 | 📈 view plot | 1,334.34 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items | 📈 view plot | 1,081.49 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Async | 📈 view plot | 46.67 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Sync | 📈 view plot | 1,034.82 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems | 📈 view plot | 159.70 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Async | 📈 view plot | 31.80 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Sync | 📈 view plot | 127.91 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems | 📈 view plot | 93.15 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Async | 📈 view plot | 7.23 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Sync | 📈 view plot | 85.91 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack | 📈 view plot | 1,927.70 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items | 📈 view plot | 1,554.12 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Async | 📈 view plot | 32.64 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Sync | 📈 view plot | 1,521.48 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems | 📈 view plot | 235.84 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Async | 📈 view plot | 37.30 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Sync | 📈 view plot | 198.55 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems | 📈 view plot | 137.74 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Async | 📈 view plot | 7.98 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Sync | 📈 view plot | 129.76 ms | ||||||
| release/Speedometer/TodoMVC-Preact | 📈 view plot | 147.53 ms | ||||||
| release/Speedometer/TodoMVC-Preact/Adding100Items | 📈 view plot | 74.54 ms | ||||||
| release/Speedometer/TodoMVC-Preact/Adding100Items/Async | 📈 view plot | 67.51 ms | ||||||
| release/Speedometer/TodoMVC-Preact/Adding100Items/Sync | 📈 view plot | 7.03 ms | ||||||
| release/Speedometer/TodoMVC-Preact/CompletingAllItems | 📈 view plot | 58.45 ms | ||||||
| release/Speedometer/TodoMVC-Preact/CompletingAllItems/Async | 📈 view plot | 47.17 ms | ||||||
| release/Speedometer/TodoMVC-Preact/CompletingAllItems/Sync | 📈 view plot | 11.28 ms | ||||||
| release/Speedometer/TodoMVC-Preact/DeletingAllItems | 📈 view plot | 14.54 ms | ||||||
| release/Speedometer/TodoMVC-Preact/DeletingAllItems/Async | 📈 view plot | 9.30 ms | ||||||
| release/Speedometer/TodoMVC-Preact/DeletingAllItems/Sync | 📈 view plot | 5.24 ms | ||||||
| release/Speedometer/TodoMVC-React | 📈 view plot | 812.77 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux | 📈 view plot | 984.48 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/Adding100Items | 📈 view plot | 324.47 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/Adding100Items/Async | 📈 view plot | 33.64 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/Adding100Items/Sync | 📈 view plot | 290.83 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/CompletingAllItems | 📈 view plot | 430.73 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Async | 📈 view plot | 35.60 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Sync | 📈 view plot | 395.13 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/DeletingAllItems | 📈 view plot | 229.28 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Async | 📈 view plot | 7.24 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Sync | 📈 view plot | 222.04 ms | ||||||
| release/Speedometer/TodoMVC-React/Adding100Items | 📈 view plot | 289.91 ms | ||||||
| release/Speedometer/TodoMVC-React/Adding100Items/Async | 📈 view plot | 36.14 ms | ||||||
| release/Speedometer/TodoMVC-React/Adding100Items/Sync | 📈 view plot | 253.77 ms | ||||||
| release/Speedometer/TodoMVC-React/CompletingAllItems | 📈 view plot | 333.07 ms | ||||||
| release/Speedometer/TodoMVC-React/CompletingAllItems/Async | 📈 view plot | 34.94 ms | ||||||
| release/Speedometer/TodoMVC-React/CompletingAllItems/Sync | 📈 view plot | 298.13 ms | ||||||
| release/Speedometer/TodoMVC-React/DeletingAllItems | 📈 view plot | 189.80 ms | ||||||
| release/Speedometer/TodoMVC-React/DeletingAllItems/Async | 📈 view plot | 7.88 ms | ||||||
| release/Speedometer/TodoMVC-React/DeletingAllItems/Sync | 📈 view plot | 181.92 ms | ||||||
| release/Speedometer/TodoMVC-Svelte | 📈 view plot | 125.61 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/Adding100Items | 📈 view plot | 70.19 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/Adding100Items/Async | 📈 view plot | 54.14 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/Adding100Items/Sync | 📈 view plot | 16.06 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/CompletingAllItems | 📈 view plot | 41.65 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Async | 📈 view plot | 33.83 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Sync | 📈 view plot | 7.82 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/DeletingAllItems | 📈 view plot | 13.76 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Async | 📈 view plot | 9.71 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Sync | 📈 view plot | 4.05 ms |
|
Test results for linux-wpt from try job (#19541435116): Flaky unexpected result (26)
Stable unexpected results that are known to be intermittent (26)
|
|
|
|
🔨 Triggering try run (#19547551310) for Linux (Unit Tests, Build libservo, WPT, Bencher), Windows (Unit Tests, Build libservo), Android, OpenHarmony, Lint |
|
Test results for linux-wpt from try job (#19547551310): Flaky unexpected result (35)
Stable unexpected results that are known to be intermittent (20)
|
|
|
|
Currently blocked on the mozjs release workflow finishing, which has failed already a couple times due to intermittent errors when downloading dependencies (llvm) |
|
🔨 Triggering try run (#19560838506) for Linux (Unit Tests, Build libservo, WPT, Bencher), Windows (Unit Tests, Build libservo), Android, OpenHarmony, Lint |
This reduces the binary size from 89 to 80 MiB for linux production-stripped. By default we still enable JIT, but in scenarios where JIT is not required or not allowed by the system, the size savings make a feature worthwhile Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
e3dc044 to
28c139e
Compare
|
Test results for linux-wpt from try job (#19560838506): Flaky unexpected result (38)
Stable unexpected results that are known to be intermittent (23)
|
|
✨ Try run (#19560838506) succeeded. |
ports/servoshell/Cargo.toml
Outdated
|
|
||
| [features] | ||
| default = ["max_log_level", "webgpu", "webxr"] | ||
| default = ["libservo/clipboard", "js_jit", "max_log_level", "webgpu", "webxr", "libservo/vello_cpu"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already enable vello_cpu down at libservo fetures, should we do the same for clipboard?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My reasoning here is that without vello-cpu, --no-default-features results in a compilation failure (since you need either vello or vello-cpu. I'm not sure yet what the best solution here is (besides a more helpful error message), but I think for now its the easiest to just unconditionally enable vello_cpu, without an option to disable it.
Servo compiles just fine without clipboard, so I think it makes sense to offer the option to disable it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aha, but we should not need vello_cpu here because it's already specified down there unconditionally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
okay, removed vello_cpu from default-features as suggested. It's a bit wierd, since we already have a vello-cpu feature in servoshell, which is useless (and was useless before too), but we can resolve that separately.
|
|
||
| [features] | ||
| default = ["clipboard", "vello_cpu"] | ||
| default = ["clipboard", "js_jit", "vello_cpu"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might make sense to write comment that one need to duplicate this in servoshell.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense. Probably we should start documenting the feature flags of libservo in general (opened an issue to not forget)
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
We anyway already enable vello_cpu via libservo Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
When the
js_jitfeature is not selected, this reduces the binary size from 89 to 80 MiB for linux production-stripped.By default, we still enable JIT, but in scenarios where JIT is not required or not allowed by the system, the size savings make a feature worthwhile.
To allow disabling the feature,
servoshellnow depends on libservo withno-default-features, and hence gains explicit default features, that were previously enabled via libservos default features. To avoid compile-errors with--no-default-features,vello-cpuis unconditionally selected by servoshell (identical to previous behavior).Testing: The default behavior is unchanged. The HarmonyOS CI job does test with
--no-default-features