[Webkit-unassigned] [Bug 249031] New: [META][WPE] Set-up performance bots with RPis and implement support in the WebKit tooling for automatic cross builds

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Dec 9 11:10:39 PST 2022


https://bugs.webkit.org/show_bug.cgi?id=249031

            Bug ID: 249031
           Summary: [META][WPE] Set-up performance bots with RPis and
                    implement support in the WebKit tooling for automatic
                    cross builds
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WPE WebKit
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: clopez at igalia.com
                CC: bugs-noreply at webkitgtk.org

This is a meta-bug that will serve as an umbrella for landing and enabling the WPE continuous performance bots.

Long short history is that we want to have WPE test bots running on embedded boards (RPi boards specifically) continuously benchmarking WebKit to help tracking and bisecting any performance regression.

As a side effect of this work the WebKit tooling will gain support for easily cross-building WPE (and also GTK if wanted) for different embedded boards

The main idea of how this will work is the following:

1) Build-ony bot
- A bot (x86_64) will cross-build WPE for a specific target board like any of this: rpi3-32bits-mesa-vc4, rpi3-32bits-userland, rpi4-32bits-mesa-vc4, rpi3-64bits-mesa-vc4, rpi4-64bits-mesa-vc4
- The bot will also generate the image (OS) that will run on the board. This image will contain everything needed except WPE itself

2) Test-only bots
- This will be a set of RPis boards, each one will boot the image that was generated from the build-only boot (via PXE)
- The RPi will download the built-product from the test-only boot and run the performance tests
- For running the performance tests it will use the script browserperfdash-benchmark which is a wrapper around the script run-benchmark
- The results of the benchmarks will be uploaded to https://browserperfdash.igalia.com/


The definition of how the toolchain is built, how webkit is built, and every single package that goes into the image will be defined inside the WebKit repository. This is important as it will allow us to bisect performance regressions easily. The idea is that if you checkout a commit of WebKit from 6 months ago you can build *exactly* the same thing that was running on the boards back then.
To support this, the tooling will automatically detect any change on the definitions of how the image or WPE is built and clean/rebuild everything accordingly. The boards will be also aware of this and will reboot themselves if the image they are running doesn't match the WebKit checkout version, so when they reboot they will boot with the new image built from the build-only boot (via PXE) and continue the testing.

To support this several changes are required on the webkit tooling. The cross-toolchain and the images will be built with Yocto (OpenEmbedded) under the hood.

For more details see the bugs attached to this on the "Depends on" field.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20221209/51cc8803/attachment.htm>


More information about the webkit-unassigned mailing list