Re: [PATCH][v2] testsuite: start as many runtest instances as there are job slots

Jakub Jelinek <[email protected]>
Newsgroups gmane.comp.gcc.patches
Message-ID <aoRlKG5Wi2AaR0im@tucnak>
On Tue, Aug 18, 2026 at 01:38:32PM +0000, Kyrylo Tkachov wrote:
> > On 18 Aug 2026, at 15:33, Richard Biener <[email protected]> wrote:
> >> A bare -j and older make do not give a number, and there the floor is
> >> retained as well.  An explicit GCC_TEST_PARALLEL_SLOTS still wins, and the per
> >> language check_$lang_parallelize caps still apply.

I think those caps are just weird.

grep ^check.*parallelize M* */M*
Makefile.in:check_p_count=$(check_$(check_p_tool)_parallelize)
algol68/Make-lang.in:check_algol68_parallelize = 10
c/Make-lang.in:check_gcc_parallelize=10000
cp/Make-lang.in:check_g++_parallelize = 10000
d/Make-lang.in:check_gdc_parallelize = 128
fortran/Make-lang.in:check_gfortran_parallelize = 10000
go/Make-lang.in:check_go_parallelize = 10
jit/Make-lang.in:check_jit_parallelize = 10
m2/Make-lang.in:check_gm2_parallelize = 10000
objc/Make-lang.in:check_objc_parallelize = 6
objcp/Make-lang.in:check_obj-c++_parallelize = 6
rust/Make-lang.in:check_rust_parallelize = 10

I think ideally those caps (which need to be capped at 10000 anyway because
we don't produce longer sequences) should be in some proportion to the
number of test in each of the testsuites or how long they usually take.
The point is to avoid spawning too many instances for really small
testsuites.
So, e.g. the gm2 number looks too big to me when it has less than 1/10 of C
or C++ tests.
$ find testsuite/gcc.dg testsuite/c-c++-common testsuite/gcc.c-torture -type f | wc -l
27223
$ find testsuite/g++.dg testsuite/c-c++-common -type f | wc -l
23980
$ find testsuite/gfortran.dg -type f | wc -l
8955
$ find testsuite/gm2* -type f | wc -l
2192
$ find testsuite/gdc.* -type f | wc -l
4469
$ find testsuite/rust/ -type f | wc -l
1734
So, I think 128 or so would be better value for gm2.  On the other side,
rust 10 is too small and should be maybe 64?
I've intentionally left gcc.target and g++.target from the above because how
many tests exactly are there differs on each target, and stuff also depends on
which testsuites cycle through options and which set of them (-O* options,
or say -std=c++* options, etc.).

	Jakub
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.