ci/lava: Use CI_JOB_TIMEOUT instead of separate variable

The CI_JOB_TIMEOUT variable is the GitLab-defined job timeout in
seconds.
Use this variable in LAVA instead of the separate JOB_TIMEOUT,
which was intended to represent the test phase timeout (job timeout
minus 5 minutes), but was often overlooked.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32609>
This commit is contained in:
Valentine Burley 2024-12-11 16:17:50 +01:00 committed by Marge Bot
parent d5b96309e7
commit 61d9c47944
7 changed files with 7 additions and 20 deletions

View file

@ -69,7 +69,7 @@ PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \
--farm "${FARM}" \ --farm "${FARM}" \
--device-type "${DEVICE_TYPE}" \ --device-type "${DEVICE_TYPE}" \
--boot-method "${BOOT_METHOD}" \ --boot-method "${BOOT_METHOD}" \
--job-timeout-min ${JOB_TIMEOUT:-30} \ --job-timeout-min $((CI_JOB_TIMEOUT/60 - 5)) \
--dump-yaml \ --dump-yaml \
--pipeline-info "$CI_JOB_NAME: $CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \ --pipeline-info "$CI_JOB_NAME: $CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
--rootfs-url "${ROOTFS_URL}" \ --rootfs-url "${ROOTFS_URL}" \

View file

@ -35,9 +35,13 @@ LAVA_QUEUE_TIMEOUT = int(getenv("LAVA_QUEUE_TIMEOUT", 60))
# the enqueue delay. # the enqueue delay.
LAVA_BOOT_TIMEOUT = int(getenv("LAVA_BOOT_TIMEOUT", 9)) LAVA_BOOT_TIMEOUT = int(getenv("LAVA_BOOT_TIMEOUT", 9))
# Estimated overhead in minutes for a job from GitLab to reach the test phase,
# including LAVA scheduling and boot duration
LAVA_TEST_OVERHEAD_MIN = 5
# Test DUT suite phase is where the initialization happens in DUT, not on docker. # Test DUT suite phase is where the initialization happens in DUT, not on docker.
# The device will be listening to SSH session until the end of the job. # The device will be listening to SSH session until the end of the job.
LAVA_TEST_DUT_SUITE_TIMEOUT = int(getenv("JOB_TIMEOUT", 60)) LAVA_TEST_DUT_SUITE_TIMEOUT = int(getenv("CI_JOB_TIMEOUT")) // 60 - LAVA_TEST_OVERHEAD_MIN
# Test suite phase is where the initialization happens on docker. # Test suite phase is where the initialization happens on docker.
LAVA_TEST_SUITE_TIMEOUT = int(getenv("LAVA_TEST_SUITE_TIMEOUT", 5)) LAVA_TEST_SUITE_TIMEOUT = int(getenv("LAVA_TEST_SUITE_TIMEOUT", 5))
@ -45,7 +49,7 @@ LAVA_TEST_SUITE_TIMEOUT = int(getenv("LAVA_TEST_SUITE_TIMEOUT", 5))
# Test cases may take a long time, this script has no right to interrupt # Test cases may take a long time, this script has no right to interrupt
# them. But if the test case takes almost 1h, it will never succeed due to # them. But if the test case takes almost 1h, it will never succeed due to
# Gitlab job timeout. # Gitlab job timeout.
LAVA_TEST_CASE_TIMEOUT = int(getenv("JOB_TIMEOUT", 60)) LAVA_TEST_CASE_TIMEOUT = int(getenv("CI_JOB_TIMEOUT")) // 60 - LAVA_TEST_OVERHEAD_MIN
# LAVA post processing may refer to a test suite teardown, or the # LAVA post processing may refer to a test suite teardown, or the
# adjustments to start the next test_case # adjustments to start the next test_case

View file

@ -29,7 +29,6 @@ radv-stoney-angle-full:
parallel: 2 parallel: 2
variables: variables:
DEQP_SUITE: radv-stoney-angle-full DEQP_SUITE: radv-stoney-angle-full
JOB_TIMEOUT: 60
radeonsi-stoney-gl: radeonsi-stoney-gl:
extends: extends:
@ -149,7 +148,6 @@ radeonsi-raven-va-full:
- radeonsi-raven-va - radeonsi-raven-va
- .radeonsi-vaapi-manual-rules - .radeonsi-vaapi-manual-rules
variables: variables:
JOB_TIMEOUT: 60
GTEST_FRACTION: null GTEST_FRACTION: null
############### VKCTS tests ############### ############### VKCTS tests ###############

View file

@ -103,7 +103,6 @@ a618-vk-full:
# ran into OOM with VK-GL-CTS 1.2.8.0 at 6 # ran into OOM with VK-GL-CTS 1.2.8.0 at 6
FDO_CI_CONCURRENT: 4 FDO_CI_CONCURRENT: 4
DEQP_SUITE: freedreno-a618-vk-full DEQP_SUITE: freedreno-a618-vk-full
JOB_TIMEOUT: 115
DEQP_FRACTION: 1 DEQP_FRACTION: 1
a618-gl: a618-gl:
@ -123,7 +122,6 @@ a618-gl-full:
timeout: 65m timeout: 65m
variables: variables:
DEQP_FRACTION: 1 DEQP_FRACTION: 1
JOB_TIMEOUT: 60
# Run dEQP EGL window system tests separately with the window systems available. # Run dEQP EGL window system tests separately with the window systems available.
# X11 takes over the screen, wayland is run headless. # X11 takes over the screen, wayland is run headless.
@ -173,7 +171,6 @@ a618-piglit-full:
DEQP_SUITE: freedreno-a618-piglit-full DEQP_SUITE: freedreno-a618-piglit-full
FLAKES_CHANNEL: "#freedreno-ci" FLAKES_CHANNEL: "#freedreno-ci"
HWCI_START_WESTON: 1 HWCI_START_WESTON: 1
JOB_TIMEOUT: 60
a618-piglit-cl: a618-piglit-cl:
extends: extends:
@ -261,7 +258,6 @@ a660-vk-full:
timeout: 1h timeout: 1h
variables: variables:
DEQP_SUITE: freedreno-a660-vk-full DEQP_SUITE: freedreno-a660-vk-full
JOB_TIMEOUT: 55
# X11 takes over the screen, wayland is run headless. # X11 takes over the screen, wayland is run headless.
a630-gl: a630-gl:

View file

@ -57,7 +57,6 @@ zink-anv-adl-full:
- .zink-anv-manual-rules - .zink-anv-manual-rules
variables: variables:
DEQP_SUITE: zink-anv-adl-full DEQP_SUITE: zink-anv-adl-full
JOB_TIMEOUT: 105
HWCI_START_WESTON: 1 HWCI_START_WESTON: 1
timeout: 2h timeout: 2h
parallel: 2 parallel: 2
@ -82,7 +81,6 @@ zink-anv-tgl-full:
- .zink-anv-manual-rules - .zink-anv-manual-rules
variables: variables:
DEQP_SUITE: zink-anv-tgl-full DEQP_SUITE: zink-anv-tgl-full
JOB_TIMEOUT: 105
HWCI_START_WESTON: 1 HWCI_START_WESTON: 1
timeout: 1h 45m timeout: 1h 45m
parallel: 3 parallel: 3

View file

@ -16,7 +16,6 @@ anv-jsl-full:
- .anv-manual-rules - .anv-manual-rules
variables: variables:
DEQP_SUITE: anv-jsl-full DEQP_SUITE: anv-jsl-full
JOB_TIMEOUT: 115
parallel: 4 parallel: 4
timeout: 2h timeout: 2h
@ -36,7 +35,6 @@ anv-adl-full:
- .anv-manual-rules - .anv-manual-rules
variables: variables:
DEQP_SUITE: anv-adl-full DEQP_SUITE: anv-adl-full
JOB_TIMEOUT: 90
timeout: 1h 40m timeout: 1h 40m
parallel: 5 parallel: 5
@ -55,7 +53,6 @@ anv-tgl-full:
- .anv-manual-rules - .anv-manual-rules
variables: variables:
DEQP_SUITE: anv-tgl-full DEQP_SUITE: anv-tgl-full
JOB_TIMEOUT: 90
timeout: 100m timeout: 100m
parallel: 4 parallel: 4
@ -94,7 +91,6 @@ anv-jsl-angle-full:
- .intel-manual-rules - .intel-manual-rules
variables: variables:
DEQP_SUITE: anv-jsl-angle-full DEQP_SUITE: anv-jsl-angle-full
JOB_TIMEOUT: 60
parallel: 2 parallel: 2
anv-adl-angle: anv-adl-angle:
@ -113,7 +109,6 @@ anv-adl-angle-full:
- .intel-manual-rules - .intel-manual-rules
variables: variables:
DEQP_SUITE: anv-adl-angle-full DEQP_SUITE: anv-adl-angle-full
JOB_TIMEOUT: 60
timeout: 30m timeout: 30m
anv-tgl-angle: anv-tgl-angle:
@ -131,7 +126,6 @@ anv-tgl-angle-full:
- .intel-manual-rules - .intel-manual-rules
variables: variables:
DEQP_SUITE: anv-tgl-angle-full DEQP_SUITE: anv-tgl-angle-full
JOB_TIMEOUT: 60
iris-apl-deqp: iris-apl-deqp:
extends: extends:

View file

@ -262,7 +262,6 @@ panfrost-t760-gles:arm32:
- .panfrost-test - .panfrost-test
- .lava-rk3288-veyron-jaq:arm32 - .lava-rk3288-veyron-jaq:arm32
variables: variables:
JOB_TIMEOUT: 60
panfrost-t760-traces:arm32: panfrost-t760-traces:arm32:
extends: extends:
@ -354,7 +353,6 @@ panfrost-g52-vk-full:arm64:
timeout: 3h timeout: 3h
variables: variables:
DEQP_SUITE: panfrost-g52-vk-full DEQP_SUITE: panfrost-g52-vk-full
JOB_TIMEOUT: 185
panfrost-g52-piglit-gles2:arm64: panfrost-g52-piglit-gles2:arm64:
extends: extends:
@ -430,4 +428,3 @@ panfrost-g610-vk-full:arm64:
timeout: 1h 35m timeout: 1h 35m
variables: variables:
DEQP_SUITE: panfrost-g610-vk-full DEQP_SUITE: panfrost-g610-vk-full
JOB_TIMEOUT: 90