From 58659446354d2afb7ba1b7b4b7a40b2ed5f44c09 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 28 Jan 2020 16:20:38 -0800 Subject: [PATCH] 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 Part-of: --- .gitlab-ci.yml | 8 -------- .gitlab-ci/deqp-freedreno-a307-skips.txt | 10 ++++++++++ .gitlab-ci/lava-deqp.yml.jinja2 | 20 +++++++++++++++++++- .gitlab-ci/lava-gitlab-ci.yml | 11 +++++++++++ .gitlab-ci/prepare-artifacts.sh | 11 +++++++++++ 5 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 .gitlab-ci/deqp-freedreno-a307-skips.txt diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94fa8830169..13b544b8b12 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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 index 00000000000..f7d0cd59a90 --- /dev/null +++ b/.gitlab-ci/deqp-freedreno-a307-skips.txt @@ -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.* diff --git a/.gitlab-ci/lava-deqp.yml.jinja2 b/.gitlab-ci/lava-deqp.yml.jinja2 index a46e3558c07..6e6620e221f 100644 --- a/.gitlab-ci/lava-deqp.yml.jinja2 +++ b/.gitlab-ci/lava-deqp.yml.jinja2 @@ -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 diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml index ea67546aac4..9e008508793 100644 --- a/.gitlab-ci/lava-gitlab-ci.yml +++ b/.gitlab-ci/lava-gitlab-ci.yml @@ -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 diff --git a/.gitlab-ci/prepare-artifacts.sh b/.gitlab-ci/prepare-artifacts.sh index e0c0eb8cb8a..1d259ada8c4 100755 --- a/.gitlab-ci/prepare-artifacts.sh +++ b/.gitlab-ci/prepare-artifacts.sh @@ -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 -- 2.30.2