Open Bug 1963192 Opened 6 months ago Updated 5 months ago

find phone/cpu at lambdatest (provider) for running jittests on arm7

Categories

(Testing :: General, defect, P2)

defect

Tracking

(Not tracked)

People

(Reporter: jmaher, Assigned: jmaher)

References

(Blocks 2 open bugs)

Details

we run jittest on arm7 on the pixel5. These tasks don't seem to run on the samsung a55. do you know the history here? I don't have much time to dig in, I am looking for someone who knows about these tests and can tell me if they:

  • should run on a55 and there is something wrong
  • need to stay on a different phone for cpu build/arch compatibility
  • shouldn't be run at all

I am working to migrate these tests to samsung a55 and they fail to run as per the link in comment 0

Flags: needinfo?(jdemooij)

It would be great if we could run these tests on Android hardware on both architectures. The exact device probably doesn't matter too much.

Yeah it would be good to keep running jit-tests on armv7 hardware in CI. AFAIK that's the only place where we run jit-tests on 32-bit arm CPUs. (We have our own arm simulator job that runs on x86 Linux, but that only covers JIT code and real hardware is very different from that simulator.)

Running jit-tests on A55 would be good too. We're also getting arm64 coverage on M4 Macs now, but these platforms are fairly different.

Flags: needinfo?(jdemooij)

pixel 5 uses Qualcomm Snapdragon 765G which is arm64- so it appears we are running arm7 builds and arm64 builds on the pixel5 historically. As we are moving most android hardware tests to a55, this means that the arm64 jittests will run on a55 which uses Exynos 1480.

Is there a reason why there was an issue installing the arm7 binaries on the a55? Maybe there is a support issue?

I assume we have users running arm7 builds of firefox/fenix/etc. ?

(In reply to Joel Maher ( :jmaher ) (UTC -8) from comment #5)

I assume we have users running arm7 builds of firefox/fenix/etc. ?

There's still a fairly large number of Fenix users on ARM32 hardware. People looked into this a few months ago and Samsung still sold these devices not that long ago.

ok, so somehow on the samsung a55, we are unable to install:

[task 2025-04-28T16:44:39.272Z] 16:44:36     INFO - >> Install app: Attempt #4 of 5
[task 2025-04-28T16:44:57.611Z] 16:44:39     INFO - Failed to install /home/ltuser/foreman/mozilla-lt-devicepool-job-dir/tasks/task_174585858422305/workspace/build/geckoview-test_runner.apk on R5CXC1HZK0W: ADBProcessError args: adb wait-for-device install /home/ltuser/foreman/mozilla-lt-devicepool-job-dir/tasks/task_174585858422305/workspace/build/geckoview-test_runner.apk, exitcode: 1, stdout: adb: failed to install /home/ltuser/foreman/mozilla-lt-devicepool-job-dir/tasks/task_174585858422305/workspace/build/geckoview-test_runner.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
[task 2025-04-28T16:44:57.611Z] 16:44:39     INFO - Performing Streamed Install

there are 2 differences in this new device:

  • hardware change (mentioned before)
  • os version change, pixel 5 is on android 13, a55 is on android 14.

who can help determine how to resolve this error? Maybe it isn't related to JS team but a build/packaging issue?

I can look next week, but I'm going ni? Ted as this feels like something he might already have piece of in his head. Feel free to punt to me till next week.

Flags: needinfo?(tcampbell)

For the a55, I am not sure why an app is even installed to run the jit-test on a device, given that the jit-tests are mostly running tests using the adb shell command.

For arm7, we want to keep them as Jan commented in comment 6, Paul Adenot collected some numbers lately.

Severity: -- → S4
Priority: -- → P3

In an adb shell you can run getprop ro.product.cpu.abilist to determine the supported ABIs on a given phone.

The Pixel 5 (and Pixel 3 for example) devices are 64-bit CPUs with 64-bit capable OS but also include a 32-bit userspace (similar to the how one used to install gcc-multilib packages on linux to support 32-bit apps on 64-bit os). This allows us to run 32-bit fenix builds on those phones.

The A55 only has a 64-bit userspace available, so will be unable to run the 32-bit fenix builds at all and thus the install error you are seeing.

We do see recent-ish phones like the Samsung A13 that have 64-bit processors, but only have 32-bit userspace and therefore must use 32-bit fenix.

Unfortunately, the number of phones in recent years with both 32-bit and 64-bit userspace seems to be decreasing which is a bit annoying for our CI needs. About 5-10% of fenix users are on 32-bit only OSes so having some form of testing is important.

Flags: needinfo?(tcampbell)

thanks everyone. I will find a way to ensure we can run arm7 / 32bit jittests for the foreseeable future.

I would like to upgrade from pixel5 as we migrate out of our old provider, for the next couple of months this isn't urgent, but we need to assess other phones or the viability of buying a few pixel5 phones. I am going to move this to testing::general and assign it to me.

Summary: jittests running on arm7, is this intentional? → find phone/cpu at lambdatest (provider) for running jittests on arm7
Assignee: nobody → jmaher
Component: JavaScript Engine: JIT → General
Product: Core → Testing

The product::component has been changed since the backlog priority was decided, so we're resetting it.
For more information, please visit BugBot documentation.

Priority: P3 → --
Priority: -- → P2

arm7 will install on pixel5 and pixel6, but not samsung a55 or s24. these are the 4 devices we have available at bitbar.

as it stands now, I will leave this alone and we will probably consider upgrading our pixel phones in Q4, that would be the time to ensure we support the gpu and arm7 requirements.

You need to log in before you can comment on or make changes to this bug.