Reenable atomics tests on as many configurations as possible
Categories
(Core :: JavaScript: WebAssembly, enhancement, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox67 | --- | fixed |
People
(Reporter: lth, Assigned: lth)
Details
Attachments
(1 file)
The wasm atomics tests were prone to timeouts and hence were marked "slow", which is a euphemism for "never ever run them at all". This is bad; we need the test coverage. We should split the file, bailout early, disable tests on slow configurations, fix any deadlock issues, or otherwise rectify this so that the tests are run when at all possible.
| Assignee | ||
Comment 1•7 years ago
|
||
Some reference numbers. jit_test does four runs by default. Running with -j1, I get about 6s / run, regardless of whether the shell is compiled with or without debugging or with or without optimization (because most of the time is spent in compiled wasm and it's not sensitive to those settings).
In bug 1480725 comment 11 I speculate that the poor performance is due to virtualization effects on the build / test servers, eg, one virtual core would not allow these spinning tests to advance fast enough to complete, as each thread needs to reach a preemption point before the next one can do any work.
If that is so, it may be worth trying to discover whether there are multiple (virtualized) cores available; really, multi-core is a prerequisite for the test case anyway, not just multi-thread.
| Assignee | ||
Comment 2•7 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=30b83178b8d90095a18a58ea65bf4c8faf07052c, this gates on cores >= 4. Looks pretty good so far.
| Assignee | ||
Comment 3•7 years ago
|
||
The atomicity test cases require multiple cores so that multiple
workers can run concurrently; if enough cores are not available then
the tests will just take forever to execute because they'll be waiting
on preemption. (In practice, the tests will time out.)
So guard execution of the test on the availability of enough cores.
The guard may mean that the tests are not run on all test platforms,
but they should be run on developer systems and on platforms where we
run tests non-virtualized, eg, android hardware -- provided there are
enough cores. This is a real improvement over the current situation,
in which the tests are marked slow and thus never run at all.
Comment 5•7 years ago
|
||
| bugherder | ||
Description
•