Bug 219189 - Switch EWS workers for JSC-ARMv7-32bits build and test queues to a new machine.
Summary: Switch EWS workers for JSC-ARMv7-32bits build and test queues to a new machine.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Carlos Alberto Lopez Perez
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-11-19 20:20 PST by Carlos Alberto Lopez Perez
Modified: 2020-12-02 11:15 PST (History)
7 users (show)

See Also:


Attachments
Patch (6.43 KB, patch)
2020-11-19 20:31 PST, Carlos Alberto Lopez Perez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos Alberto Lopez Perez 2020-11-19 20:20:41 PST
We currently run the EWS for ARMv7 JSCOnly on a x86_64 machine that cross-compiles for ARMv7 and then the tests run on a Raspberry Pi via the --remote-config-file option for run-javascriptcore-tests script

This lately was not running very smoothly, as it was taking sometimes too much time to complete the testing.

But now we have an ARM server that can do things natively and much faster than we have now.

I bench-marked it and it can build JSCOnly in 5 minutes and runs the whole run-javascriptcore-tests also in 5 minutes.
Comment 1 Carlos Alberto Lopez Perez 2020-11-19 20:31:44 PST
Created attachment 414646 [details]
Patch
Comment 2 Aakash Jain 2020-11-20 07:23:51 PST
(In reply to Carlos Alberto Lopez Perez from comment #0)
> I bench-marked it and it can build JSCOnly in 5 minutes and runs the whole run-javascriptcore-tests also in 5 minutes.
For a clear comparison, can you also state similar timing for current setup.

Also, is the plan to do this for other JSC queues as well?
Comment 3 Aakash Jain 2020-11-20 07:45:02 PST
Comment on attachment 414646 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=414646&action=review

> Tools/CISupport/ews-build/config.json:589
> +      "workernames": ["igalia-jsc32-armv7-ews-02"]

This is switching worker only for tester queue, not for builder queue.
Comment 4 Carlos Alberto Lopez Perez 2020-11-20 08:09:19 PST
(In reply to Aakash Jain from comment #3)
> Comment on attachment 414646 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=414646&action=review
> 
> > Tools/CISupport/ews-build/config.json:589
> > +      "workernames": ["igalia-jsc32-armv7-ews-02"]
> 
> This is switching worker only for tester queue, not for builder queue.

right.. the switch of the builder one is not reflected on the patch, but internally we are switching the machine assinged to igalia-jsc32-armv7-ews
Comment 5 Radar WebKit Bug Importer 2020-11-26 20:21:13 PST
<rdar://problem/71757055>
Comment 6 Carlos Alberto Lopez Perez 2020-12-01 17:27:32 PST
(In reply to Aakash Jain from comment #2)
> (In reply to Carlos Alberto Lopez Perez from comment #0)
> > I bench-marked it and it can build JSCOnly in 5 minutes and runs the whole run-javascriptcore-tests also in 5 minutes.
> For a clear comparison, can you also state similar timing for current setup.
> 

Current queue builds as fast as this (since it cross-builds on x86_64) but the test step takes 1 hour to run.

> Also, is the plan to do this for other JSC queues as well?

We are trying to get better hardware to improve also the timings on the MIPS queue, but I don't think it will be fast enough to build WebKit.
So very likely we will continue to cross-build for that architecture and continue running tests on the MIPS queue with the --remote-config-file option
Comment 7 Aakash Jain 2020-12-02 06:02:42 PST
Comment on attachment 414646 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=414646&action=review

> Tools/CISupport/ews-build/steps.py:1617
> +            self.command.extend(['--no-testmasm', '--no-testair', '--no-testb3', '--no-testdfg', '--no-testapi'])

what was the reason that igalia jsc-armv7 queue needed these parameters (e.g.: --no-testmasm) earlier, and what's the reason it doesn't need it now?

> Tools/CISupport/ews-build/steps.py:1622
> +            self.command.extend(['--memory-limited', '--verbose'])

why verbose?
Comment 8 Carlos Alberto Lopez Perez 2020-12-02 06:15:24 PST
(In reply to Aakash Jain from comment #7)
> Comment on attachment 414646 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=414646&action=review
> 
> > Tools/CISupport/ews-build/steps.py:1617
> > +            self.command.extend(['--no-testmasm', '--no-testair', '--no-testb3', '--no-testdfg', '--no-testapi'])
> 
> what was the reason that igalia jsc-armv7 queue needed these parameters
> (e.g.: --no-testmasm) earlier, and what's the reason it doesn't need it now?
> 

Previously the tests were running on a remote board (a Raspberry Pi) and the built-product was copied to the board at the moment of starting the tests. The function responsible of copying this built-product (prepareBundle() at Tools/Scripts/run-jsc-stress-tests) was only copying the jsc binary but not the testmasm, testair, testb3, testdfb, testapi binaries.

Now the tests run natively on the same host that hosts the buildbot worker, so no copying of the built-product to a board is involved.


> > Tools/CISupport/ews-build/steps.py:1622
> > +            self.command.extend(['--memory-limited', '--verbose'])
> 
> why verbose?

It gives information about which exact test is running at the time. IMHO the stdout log gives more information that way. It is also how we run the JSC tests on the JSCOnly post-commit bot at https://build.webkit.org/waterfall?category=misc
Comment 9 Aakash Jain 2020-12-02 06:28:59 PST
(In reply to Carlos Alberto Lopez Perez from comment #8)
> Now the tests run natively on the same host that hosts the buildbot worker, so no copying of the built-product to a board is involved.
The build and test are still on different bots. bot on builder queue builds, upload the archive, and bot on tester queue downloads it.
Comment 10 Carlos Alberto Lopez Perez 2020-12-02 07:07:30 PST
(In reply to Aakash Jain from comment #9)
> (In reply to Carlos Alberto Lopez Perez from comment #8)
> > Now the tests run natively on the same host that hosts the buildbot worker, so no copying of the built-product to a board is involved.
> The build and test are still on different bots. bot on builder queue builds,
> upload the archive, and bot on tester queue downloads it.

Right. I think maybe I was not clear enough. I will rephrase what I was trying to mean.

- Now both machines are armv7 machines: The build-queue builds natively and the test-queue simply executes the binaries it downloads from the build-queue.

- Previously the build-queue was a x84_64 machine cross-building for armv7 and the test-queue was another x86_64 machine that ran the test step remotely on a RPi board via the "--remote-config-file" option for the script run-javascriptcore-tests.
Comment 11 Aakash Jain 2020-12-02 07:10:00 PST
sounds good
Comment 12 EWS 2020-12-02 08:39:27 PST
Committed r270348: <https://trac.webkit.org/changeset/270348>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414646 [details].