Closed Bug 1692096 Opened 3 months ago Closed 3 months ago

reduce jittest permutations on android hardware

Categories

(Core :: JavaScript Engine, task, P2)

task

Tracking

()

RESOLVED FIXED
88 Branch
Tracking Status
firefox87 --- wontfix
firefox88 --- fixed

People

(Reporter: jmaher, Assigned: jmaher)

References

Details

Attachments

(1 file)

in discussing options of arm64 testing, the topic of jittest and overlapping coverage has some potential wins for android hardware tests. Currently jittest consume 54% of the cpu time of the 27 android unittest machines, any progress we can make to reduce that will help.

What is currently run:
https://treeherder.mozilla.org/jobs?repo=mozilla-central&searchStr=android%2Cjittest&revision=375bea508a03d900321fb2e3564dcc6f1fb831a8

android pixel 2 (arm) debug: jittest 10 chunks
android pixel 2 (arm) shippable: jittest 10 chunks
android pixel 2 (arm64) debug: jittest 10 chunks
android pixel2 (arm64) shippable: jittest 10 chunks

currently apple_silicon will be opt builds and this is arm64. Our goal is not to remove coverage from android wholesale, but to reduce some of the permutations that are run there.

Ideally we will run all possible permutations on apple_silicon.

:jandem mentioned next week it would be possible to review the flag combinations on android to see what makes sense to reduce. Maybe only on arm64?

For what is worth, I am currently working on optimizing jitttest on android (Bug 1690570) in order to validate some work on Stencil.

I noticed a second issue which is that we spend a few minutes to upload all tests (Bug 1692178) where we could significantly reduce this time by only uploading the necessary files.

Depends on: 1692178, 1690570
Severity: -- → S4
Priority: -- → P2
Component: JavaScript Engine: JIT → JavaScript Engine

:jandem, following up here- what can I do to help review the flags that we run on android JIT?

Flags: needinfo?(jdemooij)

(In reply to Joel Maher ( :jmaher ) (UTC -0800) from comment #2)

:jandem, following up here- what can I do to help review the flags that we run on android JIT?

Maybe try using --jitflags=debug instead of --jitflags=all, that should reduce the number of permutations from 6 to 3 and is probably still acceptable, especially if/when we have the full tests on another native arm64 platform (Apple Silicon).

It might make sense to wait for nbp's changes to land (see comment 1) so we can evaluate this better.

Flags: needinfo?(jdemooij)

switching to --jitflags=debug results in about half the runtime:
https://treeherder.mozilla.org/jobs?repo=try&selectedTaskRun=ZI_EuXOvT0C878bKU-fLMw.0&tier=1%2C2%2C3&revision=c59dde1ec5bb9f2a7c6b1c70ca5bdc13e04aa0a6

keep in mind we run on arm and arm64 for android, whereas apple silicon will just be arm64; assuming this makes sense todo would we do these flags on all 4 configs?

  1. android arm debug
  2. android arm shippable
  3. android arm64 debug
  4. android arm64 shippable

(In reply to Joel Maher ( :jmaher ) (UTC -0800) from comment #4)

keep in mind we run on arm and arm64 for android, whereas apple silicon will just be arm64; assuming this makes sense todo would we do these flags on all 4 configs?

It's probably okay to change it for arm64 debug/opt + arm32 debug, also given the status of arm32? Do you happen to know how long we want to support that architecture on Android going forward?

arm32 is still a strong 20% of our android userbase and growing (slowly) in the last 6 months. For the next year if not 2 we should keep testing this as a tier-1 platform, possibly next year or end of next year we could consider reducing test permutations/sets on android 32 bit arm.

so to clarify, arm32 opt we would keep jitflags=ALL

using :nbp's threaded patch set yields about 1/2 current runtime:
https://treeherder.mozilla.org/jobs?repo=try&tier=1%2C2%2C3&revision=f7bc57012a48748d4a8a26e39e9b920e1574fb17

using debug only + :nbp's threaded patch set, the times drop to about 1/3 current runtime:
https://treeherder.mozilla.org/jobs?repo=try&tier=1%2C2%2C3&revision=6410845683f4a852a2ee4942b18cae9cd76b7a6b

I would push for *debug || *aarch64 to run --jittests=debug, this would help save a lot of runtime.

reduce jittest flags on android/aarch64 || android/debug

Assignee: nobody → jmaher
Status: NEW → ASSIGNED
Pushed by jmaher@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0ffc244f78cc
reduce jittest flags on android/aarch64 || android/debug. r=releng-reviewers,jandem,sfink,aki
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch
You need to log in before you can comment on or make changes to this bug.