ci: Switch testing on db410c over to LAVA.

This should get us better stability of the db410c boards by having a
smaller per-board software stack, with no disks involved (just initramfs).
Additionally, the new cluster is 7 (soon 8) db410cs, while currently the
docker cluster only has 1/4 of its db410cs still running.

Unfortunately, we have to prepare the fastboot boot image during the ARM
drivers build stage, because LAVA relies on publicly available URLs for
the images to load into the bootloaders of the boards, and the only thing
we have for that is gitlab's artifacts.

Note that this testing relies on the boards being freshly flashed with the
linaro v136 firmware to pick up the initramfs size fixes and to stop the
boot at fastboot.

Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3661>
This commit is contained in:
Eric Anholt
2020-01-28 16:20:38 -08:00
parent adcb365c1d
commit 5865944635
5 changed files with 51 additions and 9 deletions

View File

@@ -686,14 +686,6 @@ arm64_a630_gles3:
variables:
DEQP_VER: gles3
arm64_a306_gles2:
extends: arm64_a630_gles2
variables:
DEQP_EXPECTED_FAILS: deqp-freedreno-a307-fails.txt
DEQP_SKIPS: deqp-default-skips.txt
tags:
- db410c
# RADV CI
.test-radv:
variables:

View File

@@ -0,0 +1,10 @@
# Note: skips lists for CI are just a list of lines that, when
# non-zero-length and not starting with '#', will regex match to
# delete lines from the test list. Be careful.
# Skip the perf/stress tests to keep runtime manageable
dEQP-GLES[0-9]*.performance.*
dEQP-GLES[0-9]*.stress.*
# These are really slow on tiling architectures (including llvmpipe).
dEQP-GLES[0-9]*.functional.flush_finish.*

View File

@@ -20,6 +20,13 @@ actions:
- deploy:
timeout:
minutes: 10
{% if boot_method == "fastboot" %}
{# fastboot has just one boot image with the dtb and rootfs packed in #}
to: fastboot
images:
boot:
url: {{ base_artifacts_url }}/{{ kernel_image_name }}
{% else %}
to: tftp
kernel:
url: {{ base_artifacts_url }}/{{ kernel_image_name }}
@@ -31,12 +38,23 @@ actions:
compression: gz
dtb:
url: {{ base_artifacts_url }}/{{ device_type }}.dtb
{% endif %}
os: oe
- boot:
timeout:
minutes: 5
method: {{ boot_method }}
{% if boot_method == "fastboot" %}
{#
For fastboot, LAVA doesn't know how to unpack the rootfs/apply overlay/repack,
so we transfer the overlay over the network after boot.
#}
transfer_overlay:
download_command: wget -S --progress=dot:giga
unpack_command: tar -C / -xzf
{% else %}
commands: ramdisk
{% endif %}
prompts:
- 'lava-shell:'
- test:
@@ -56,7 +74,7 @@ actions:
steps:
- mount -t proc none /proc
- mount -t sysfs none /sys
- mount -t devtmpfs none /dev
- mount -t devtmpfs none /dev || echo possibly already mounted
- mkdir -p /dev/pts
- mount -t devpts devpts /dev/pts

View File

@@ -139,3 +139,14 @@ lima-mali450-test:arm64:
ENV_VARS: "DEQP_PARALLEL=6"
tags:
- lava-meson-gxl-s905x-libretech-cc
freedreno-a307-gles2:
extends: .lava-test:arm64
variables:
DEVICE_TYPE: apq8016-sbc
GPU_VERSION: freedreno-a307
ENV_VARS: "DEQP_PARALLEL=4"
KERNEL_IMAGE_NAME: db410c.img
BOOT_METHOD: fastboot
tags:
- lava-mesa-db410c

View File

@@ -53,6 +53,17 @@ if [ -d /lava-files ]; then
find -H | cpio -H newc -o | gzip -c - > $CI_PROJECT_DIR/artifacts/lava-rootfs-${CROSS:-arm64}.cpio.gz
popd
if [ -z "$CROSS" ]; then
gzip -c artifacts/Image > Image.gz
cat Image.gz artifacts/apq8016-sbc.dtb > Image.gz-dtb
abootimg \
--create artifacts/db410c.img \
-k Image.gz-dtb \
-r artifacts/lava-rootfs-${CROSS:-arm64}.cpio.gz \
-c cmdline="ip=dhcp console=ttyMSM0,115200n8"
rm Image.gz Image.gz-dtb
fi
# Store job ID so the test stage can build URLs to the artifacts
echo $CI_JOB_ID > artifacts/build_job_id.txt