[PATCH 0/2] gitlab-ci: Force 'make check' single-threaded for cross-i686-tci

Peter Maydell posted 2 patches 2 months, 2 weeks ago
.gitlab-ci.d/crossbuilds.yml | 3 +++
scripts/mtest2make.py        | 4 ++++
2 files changed, 7 insertions(+)
[PATCH 0/2] gitlab-ci: Force 'make check' single-threaded for cross-i686-tci
Posted by Peter Maydell 2 months, 2 weeks ago
The CI job cross-i686-tci has been persistently flaky for what seems
like years now. Stefan Weil had a look and his conclusion was that
this happens because we run too many tests in parallel, and so
sometimes they starve each other of CPU and time out:
https://lore.kernel.org/qemu-devel/9692cfcb-ef59-4cec-8452-8bfb859e8a6c@weilnetz.de/

To test this theory, force the cross-i686-tci job to run only
one test at a time. 'meson test' has a handy environment
variable to let us set the parallelism. Unfortunately meson
prioritises the command line '--num-processes' argument over
the environment variable if they are both set, so to make
this work we need to adjust our mtest2make script to not
set --num-processes if the MESON_TESTTHREADS envariable is set.

I don't know if this will fix the flakiness, but it seems worth
a try. If it works, we might want to consider whether we should
do something similar across the board -- at the moment we
always use a parallelism of num-cpus + 1, because we use the
same amount of parallelism that we do for the compile step.

thanks
-- PMM

Peter Maydell (2):
  scripts/mtest2make: Honour MESON_TESTTHREADS if it is set
  .gitlab-ci.d/crossbuilds.yml: Force 'make check' single threaded for
    cross-i686-tci

 .gitlab-ci.d/crossbuilds.yml | 3 +++
 scripts/mtest2make.py        | 4 ++++
 2 files changed, 7 insertions(+)

-- 
2.34.1