Mesa (master): ci/deqp: Allow specifying the caselist fraction separate from CI_NODE_INDEX.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Nov 11 17:41:18 UTC 2020


Module: Mesa
Branch: master
Commit: 6bc35c00e2245ba13dceeabd4a6bf75e4415812b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6bc35c00e2245ba13dceeabd4a6bf75e4415812b

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Nov  6 15:55:24 2020 -0800

ci/deqp: Allow specifying the caselist fraction separate from CI_NODE_INDEX.

To increase our VK coverage on a630, we want to have two jobs in parallel,
but we still can't hit full coverage so we need the fractional setting to
be separate from gitlab CI's flags for setting up parallel jobs.

Reviewed-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6971>

---

 .gitlab-ci.yml                                  | 15 +++++----------
 .gitlab-ci/bare-metal/arm64_a630_gles_others.sh |  6 ++----
 .gitlab-ci/bare-metal/rootfs-setup.sh           |  1 +
 .gitlab-ci/deqp-runner.sh                       | 11 +++++++++--
 docs/ci/index.rst                               |  3 +--
 5 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 932f9e0f698..1af783ab1c3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1288,8 +1288,7 @@ arm64_a630_vk:
   extends: arm64_a630_gles2
   variables:
     DEQP_VER: vk
-    CI_NODE_INDEX: 1
-    CI_NODE_TOTAL: 50
+    DEQP_FRACTION: 50
     VK_DRIVER: freedreno
     # Force binning in the main run, which makes sure we render at
     # least 2 bins.  This is the path that impacts the most different
@@ -1304,8 +1303,7 @@ arm64_a630_vk_sysmem:
   extends:
     - arm64_a630_vk
   variables:
-    CI_NODE_INDEX: 1
-    CI_NODE_TOTAL: 10
+    DEQP_FRACTION: 10
     DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*"
     DEQP_EXPECTED_FAILS: deqp-freedreno-a630-bypass-fails.txt
     TU_DEBUG: sysmem
@@ -1359,8 +1357,7 @@ arm64_a306_gles3:
   variables:
     DEQP_VER: gles3
     DEQP_PARALLEL: 1
-    CI_NODE_INDEX: 1
-    CI_NODE_TOTAL: 25
+    DEQP_FRACTION: 25
 
 # Fractional runs with debug options.  Note that since we're not
 # hitting the iommu faults, we can run in parallel (derive from gles2, not gles3).
@@ -1398,16 +1395,14 @@ arm64_a530_gles3:
   variables:
     DEQP_VER: gles3
     DEQP_PARALLEL: 1
-    CI_NODE_INDEX: 1
-    CI_NODE_TOTAL: 40
+    DEQP_FRACTION: 40
 
 arm64_a530_gles31:
   extends:
     - arm64_a530_gles3
   variables:
     DEQP_VER: gles31
-    CI_NODE_INDEX: 1
-    CI_NODE_TOTAL: 10
+    DEQP_FRACTION: 10
 
 # RADV CI
 .test-radv:
diff --git a/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh b/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh
index c10d4b5bd58..d2bb08be7c0 100755
--- a/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh
+++ b/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh
@@ -11,8 +11,7 @@ EXIT=0
 if ! env \
   DEQP_RESULTS_DIR=results/gmem \
   DEQP_VER=gles31 \
-  CI_NODE_INDEX=1 \
-  CI_NODE_TOTAL=5 \
+  DEQP_FRACTION=5 \
   FD_MESA_DEBUG=nobypass \
   /install/deqp-runner.sh; then
     EXIT=1
@@ -22,8 +21,7 @@ fi
 if ! env \
   DEQP_RESULTS_DIR=results/bypass \
   DEQP_VER=gles31 \
-  CI_NODE_INDEX=1 \
-  CI_NODE_TOTAL=5 \
+  DEQP_FRACTION=5 \
   FD_MESA_DEBUG=nogmem \
   DEQP_EXPECTED_FAILS=deqp-freedreno-a630-bypass-fails.txt \
   /install/deqp-runner.sh; then
diff --git a/.gitlab-ci/bare-metal/rootfs-setup.sh b/.gitlab-ci/bare-metal/rootfs-setup.sh
index 1e102f4c96a..b1851124b93 100644
--- a/.gitlab-ci/bare-metal/rootfs-setup.sh
+++ b/.gitlab-ci/bare-metal/rootfs-setup.sh
@@ -31,6 +31,7 @@ for var in \
     DEQP_CONFIG \
     DEQP_EXPECTED_FAILS \
     DEQP_EXPECTED_RENDERER \
+    DEQP_FRACTION \
     DEQP_HEIGHT \
     DEQP_NO_SAVE_RESULTS \
     DEQP_FLAKES \
diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh
index 0010550d293..2bb89d92145 100755
--- a/.gitlab-ci/deqp-runner.sh
+++ b/.gitlab-ci/deqp-runner.sh
@@ -57,8 +57,15 @@ else
    SUITE=KHR
 fi
 
-# If the job is parallel, take the corresponding fraction of the caselist.
-# Note: N~M is a gnu sed extension to match every nth line (first line is #1).
+# If the caselist is too long to run in a reasonable amount of time, let the job
+# specify what fraction (1/n) of the caselist we should run.  Note: N~M is a gnu
+# sed extension to match every nth line (first line is #1).
+if [ -n "$DEQP_FRACTION" ]; then
+   sed -ni 1~$DEQP_FRACTION"p" /tmp/case-list.txt
+fi
+
+# If the job is parallel at the gitab job level, take the corresponding fraction
+# of the caselist.
 if [ -n "$CI_NODE_INDEX" ]; then
    sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
 fi
diff --git a/docs/ci/index.rst b/docs/ci/index.rst
index e4cea23768d..c9350c6b24d 100644
--- a/docs/ci/index.rst
+++ b/docs/ci/index.rst
@@ -111,8 +111,7 @@ no ``parallel`` field set and:
 .. code-block:: yaml
 
     variables:
-      CI_NODE_INDEX: 1
-      CI_NODE_TOTAL: 10
+      DEQP_FRACTION: 10
 
 to just run 1/10th of the test list.
 



More information about the mesa-commit mailing list