From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Stefan Hajnoczi <stefanha@redhat.com>,
qemu-devel@nongnu.org,
Richard Henderson <richard.henderson@linaro.org>
Cc: "Beraldo Leal" <bleal@redhat.com>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Thomas Huth" <thuth@redhat.com>
Subject: Re: [PATCH] gitlab-ci: split clang-user to avoid timeout
Date: Thu, 3 Nov 2022 23:32:31 +0100 [thread overview]
Message-ID: <e188327c-9afc-db4b-4a83-e88ac31cd353@linaro.org> (raw)
In-Reply-To: <20221103212321.387738-1-stefanha@redhat.com>
+Richard
On 3/11/22 22:23, Stefan Hajnoczi wrote:
> GitLab CI times out when the clang-user job takes over 1 hour. Split it
> into parts that check various architectures.
>
> An alternative is to have one job per architecture but that clutters the
> pipeline view and maybe there is some sharing when multiple targets are
> built at once.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> .gitlab-ci.d/buildtest-template.yml | 11 +++++++++++
> .gitlab-ci.d/buildtest.yml | 18 +++++++++---------
> 2 files changed, 20 insertions(+), 9 deletions(-)
>
> diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
> index 73ecfabb8d..38b055e139 100644
> --- a/.gitlab-ci.d/buildtest-template.yml
> +++ b/.gitlab-ci.d/buildtest-template.yml
> @@ -81,3 +81,14 @@
> - du -chs ${CI_PROJECT_DIR}/avocado-cache
> variables:
> QEMU_JOB_AVOCADO: 1
> +
> +.clang-user-template:
> + extends: .native_build_job_template
> + needs:
> + job: amd64-debian-user-cross-container
> + variables:
> + IMAGE: debian-all-test-cross
> + CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
> + --extra-cflags=-fsanitize=undefined
> + --extra-cflags=-fno-sanitize-recover=undefined
> + MAKE_CHECK_ARGS: check-unit check-tcg
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> index 6c05c46397..116fce4e8f 100644
> --- a/.gitlab-ci.d/buildtest.yml
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -323,16 +323,16 @@ clang-system:
> ppc-softmmu s390x-softmmu
> MAKE_CHECK_ARGS: check-qtest check-tcg
>
> -clang-user:
> - extends: .native_build_job_template
> - needs:
> - job: amd64-debian-user-cross-container
> +# clang-user takes too long so split it into parts
> +clang-user-part1:
> + extends: .clang-user-template
> variables:
> - IMAGE: debian-all-test-cross
> - CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
> - --target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
We can exclude these targets which are a bit redundant:
armeb-linux-user,mips64-linux-user,mipsel-linux-user,mipsn32-linux-user,ppc64-linux-user,sh4-linux-user,sparc-linux-user,riscv32-linux-user
Alternatively, instead of using the exclude pattern, we can switch to
including the targets which do have tcg tests:
$ ls -1 tests/tcg/
Makefile.target
README
aarch64
alpha
arm
cris
hexagon
hppa
i386
loongarch64
m68k
minilib
mips
multiarch
nios2
openrisc
ppc
ppc64
ppc64le
riscv64
s390x
sh4
sparc64
tricore
x86_64
xtensa
Although we have 'multiarch' :/
We can also drop check-unit, but not sure if it saves much.
> - --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
> - MAKE_CHECK_ARGS: check-unit check-tcg
> + TARGETS: aarch64-linux-user,alpha-linux-user,armeb-linux-user,arm-linux-user,cris-linux-user,hexagon-linux-user,hppa-linux-user,loongarch64-linux-user,microblaze-linux-user,mips64el-linux-user,mips64-linux-user,mipsel-linux-user,mips-linux-user,mipsn32-linux-user
> +
> +clang-user-part2:
> + extends: .clang-user-template
> + variables:
> + TARGETS: nios2-linux-user,or1k-linux-user,ppc64le-linux-user,ppc64-linux-user,ppc-linux-user,riscv32-linux-user,riscv64-linux-user,s390x-linux-user,sh4eb-linux-user,sh4-linux-user,sparc32plus-linux-user,sparc64-linux-user,sparc-linux-user,x86_64-linux-user,xtensa-linux-user
>
> # Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory.
> # On gitlab runners, default value sometimes end up calling 2 lds concurrently and
next prev parent reply other threads:[~2022-11-03 22:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-03 21:23 [PATCH] gitlab-ci: split clang-user to avoid timeout Stefan Hajnoczi
2022-11-03 22:32 ` Philippe Mathieu-Daudé [this message]
2022-11-03 22:45 ` Richard Henderson
2022-11-04 6:27 ` Thomas Huth
2022-11-04 9:32 ` Philippe Mathieu-Daudé
2022-11-04 13:33 ` Alex Bennée
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e188327c-9afc-db4b-4a83-e88ac31cd353@linaro.org \
--to=philmd@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=bleal@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=stefanha@redhat.com \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).