844328e2

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Warn about one capability whatever asked for the parallelism

The warning to compile a test suite with -threaded -rtsopts
-with-rtsopts=-N only fired when the thread count was left to the
capabilities. A suite run with --jobs 4 on one capability runs its tests
one at a time just the same, so it never exercises the thread safety
that running them in parallel is there to find, and it said nothing
about that.

So decide the warning from the capability count and the parallelism the
suite ends up running with, which is what resolveThreads settles in one
place. Only a synchronous run has nothing to gain from more
capabilities, so only it stays quiet, and that covers a build nix
narrowed down to a single core: advising -N there would change nothing,
because one core resolves to a synchronous run either way.

The warning now names capabilities rather than CPU cores. That is what
it has always counted, and the two only looked alike while it fired for
the capability count alone: a suite told to use four threads on a
64-core machine, without -N, has one capability and 64 cores.
GitHub

Total

2m36s

Created Started Finished

Time to Start Worker time Duration Time to finish Idle
Config 1m23s 1s 1s 1m24s 1m23s
Eval 1m27s 2m32s 2m32s 3m59s 1m19s
Build - - - - -
Suite 1m23s 2m33s 2m36s 3m59s 2m43s

Timeline

Config Eval Failed Retried Compressed gap
0s1m40s2m2m20s2m40s3m3m20s3m40s