From: Richard Henderson <richard.henderson@linaro.org>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
qemu-devel@nongnu.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: Fri, 4 Nov 2022 09:45:11 +1100 [thread overview]
Message-ID: <0d6bed9b-9776-8dc3-9e8c-8b64eeda0ee0@linaro.org> (raw)
In-Reply-To: <e188327c-9afc-db4b-4a83-e88ac31cd353@linaro.org>
On 11/4/22 09:32, Philippe Mathieu-Daudé wrote:
> +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' :/
If we're talking about tests, this runs on debian-all-test-cross, which has fewer
cross-compilers than that.
However, the main purpose of clang-user is to make sure that stuff *builds* with clang, as
opposed to gcc, which is where we've seen most problems in the past. So we do want as
much coverage across targets/*/ as possible, even if cross-compilers for tests are not
available.
I agree that we can drop some redundancy, like aarch64_be, armbe, mips{set}, riscv32,
which have no remarkable difference in linux-user/. But be careful of e.g. ppc64 vs
ppc64le and sparc vs sparc64 which have very different ABIs.
Perhaps an interesting split would be those guests supported by debian-all-test-cross, for
which we build + test, and the others, for which we build only.
r~
next prev parent reply other threads:[~2022-11-03 22:46 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é
2022-11-03 22:45 ` Richard Henderson [this message]
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=0d6bed9b-9776-8dc3-9e8c-8b64eeda0ee0@linaro.org \
--to=richard.henderson@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=bleal@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.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).