ci/lava: implement the priority
authorDavid Heidelberg <david.heidelberg@collabora.com>
Thu, 9 Mar 2023 11:36:25 +0000 (12:36 +0100)
committerMarge Bot <emma+marge@anholt.net>
Thu, 9 Mar 2023 20:28:07 +0000 (20:28 +0000)
Before: kernelci 38; Mesa3D 75

Priority now:
 - 38 ‒ kernelci
 - 40 ‒ after merge and performance
 - 50 ‒ user runs
 - 75 ‒ marge-bot (MUST be prioritized)

Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21812>

.gitlab-ci.yml
.gitlab-ci/lava/lava_job_submitter.py
.gitlab-ci/test-source-dep.yml

index 318d6a0..b9162b9 100644 (file)
@@ -3,6 +3,12 @@ workflow:
     - if: $GITLAB_USER_LOGIN == "marge-bot" && $CI_COMMIT_BRANCH == null
       variables:
         MESA_CI_PERFORMANCE_ENABLED: 1
+    - if: $GITLAB_USER_LOGIN == "marge-bot" && $CI_COMMIT_BRANCH
+      variables:
+        LAVA_JOB_PRIORITY: 40
+    - if: $GITLAB_USER_LOGIN != "marge-bot"
+      variables:
+        LAVA_JOB_PRIORITY: 50
     - when: always
 
 variables:
index ea3cb10..5feb468 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #
-# Copyright (C) 2020 - 2022 Collabora Limited
+# Copyright (C) 2020 - 2023 Collabora Limited
 # Authors:
 #     Gustavo Padovan <gustavo.padovan@collabora.com>
 #     Guilherme Gallo <guilherme.gallo@collabora.com>
@@ -61,6 +61,11 @@ NUMBER_OF_RETRIES_TIMEOUT_DETECTION = int(getenv("LAVA_NUMBER_OF_RETRIES_TIMEOUT
 # How many attempts should be made when a timeout happen during LAVA device boot.
 NUMBER_OF_ATTEMPTS_LAVA_BOOT = int(getenv("LAVA_NUMBER_OF_ATTEMPTS_LAVA_BOOT", 3))
 
+# Supports any integers in [0, 100].
+# The scheduler considers the job priority when ordering the queue
+# to consider which job should run next.
+JOB_PRIORITY = int(getenv("LAVA_JOB_PRIORITY", 75))
+
 
 def generate_lava_yaml_payload(args) -> dict[str, Any]:
     # General metadata and permissions, plus also inexplicably kernel arguments
@@ -68,7 +73,7 @@ def generate_lava_yaml_payload(args) -> dict[str, Any]:
         'job_name': 'mesa: {}'.format(args.pipeline_info),
         'device_type': args.device_type,
         'visibility': { 'group': [ args.visibility_group ] },
-        'priority': 75,
+        'priority': JOB_PRIORITY,
         'context': {
             'extra_nfsroot_args': ' init=/init rootwait usbcore.quirks=0bda:8153:k'
         },
index c03649f..ac6a784 100644 (file)
     - !reference [.freedreno-manual-rules, rules]
   allow_failure: true # see comment in .performance-rules, which we don't inherit this line from.
   variables:
+    LAVA_JOB_PRIORITY: 40
     MINIO_ARTIFACT_NAME: "mesa-arm64-rel"
   needs:
     - job: debian/arm64_test
       when: manual
   allow_failure: true # see comment in .performance-rules, which we don't inherit this line from.
   variables:
+    LAVA_JOB_PRIORITY: 40
     MINIO_ARTIFACT_NAME: "mesa-amd64-rel"
   needs:
     - kernel+rootfs_amd64
       when: manual
   allow_failure: true # see comment in .performance-rules, which we don't inherit this line from.
   variables:
+    LAVA_JOB_PRIORITY: 40
     MINIO_ARTIFACT_NAME: "mesa-amd64-rel"
   needs:
     - kernel+rootfs_amd64