On Wed, 4 May 2022, Zebediah Figura (she/her) wrote: [...]
This seems worth looking into.
Given that almost all the CPU performance gains come from high core counts nowadays I agree that it would be nice. But...
There's also a lot of tests that can't really be improved by multithreading *internally*, but also don't touch global state and hence could be run in parallel with anything else. We could construct a whitelist (or maybe there's even enough to construct a blacklist instead) of tests that winetest can run in parallel.
I don't think there's a way to automatically detect which test units can be run in parallel or even to have a heuristic that reliably identifies a subset that are safe to parallelize. (and reciprocally for a whitelist)
That means we'd need a handcrafted whitelist or blacklist and I'm not sure how maintainable that would be: - A blacklist has the drawback that we'd always be playing catchup to add new tests. - But I'm not even sure a whitelist would work better: any patch to a whitelisted test may require evicting it from the whitelist.