ci: Switch testing on db410c over to LAVA.
authorEric Anholt <eric@anholt.net>
Wed, 29 Jan 2020 00:20:38 +0000 (16:20 -0800)
committerEric Anholt <eric@anholt.net>
Mon, 2 Mar 2020 19:38:46 +0000 (11:38 -0800)
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>

.gitlab-ci.yml
.gitlab-ci/deqp-freedreno-a307-skips.txt [new file with mode: 0644]
.gitlab-ci/lava-deqp.yml.jinja2
.gitlab-ci/lava-gitlab-ci.yml
.gitlab-ci/prepare-artifacts.sh

index 94fa88301697ca7b9e15b317e8aaeac922f48b3e..13b544b8b12a6e32d6311b65d6a4065f5c548755 100644 (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:
diff --git a/.gitlab-ci/deqp-freedreno-a307-skips.txt b/.gitlab-ci/deqp-freedreno-a307-skips.txt
new file mode 100644 (file)
index 0000000..f7d0cd5
--- /dev/null
@@ -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.*
index a46e3558c077a3a4923ad77fb217a54f170c63a7..6e6620e221fbb75fd267bc73baa06a833d823dc8 100644 (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
 
index ea67546aac46eccb9790769a7ff077ca7ba19db2..9e00850879315c27cf78740c22d17bed2faebc1a 100644 (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
index e0c0eb8cb8aa87c455f3e9a3c7fc2ff903a1c1d2..1d259ada8c41d8f689cf41880545b834b9db4651 100755 (executable)
@@ -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