fgouget at codeweavers.com
Mon Jun 6 12:55:11 CDT 2022
The TestBot is getting two new VM hosts, gpu1 and gpu2.
* Thanks to their i9-12900K processor they have much better
multi-threaded performance: compiling Wine from scratch went from
about 920 seconds on the old boxes to 220 seconds with 16 threads, and
190 seconds with 24 threads  (all numbers include the configure
step). That should help with patches that touch Wine headers.
* They also have much better single-thread performance. The first
results indicate that they can run WineTest in Wine in about 20
minutes instead of 36 minutes.
* They should support PCI-passthrough and each has an AMD RX 6600 and an
Nvidia RTX 3050 graphics card. That means it should be possible to
test every patch against these graphics cards (unlike the cw-rx460 and
cw-gtx560 machines which only ran WineTest and were not fully part of
* They should also be able to run Windows 11 in a VM.
The sad news is that they literally replace cw-rx460 and cw-gtx560 so
those two are no more. So PCI-passthrough is needed to provide continued
tests against real GPUs. The current status:
* gpu1 is in place and part of the TestBot but only runs 'vanilla' VMs.
* gpu2 has now replaced cw-gtx560 but is not set up yet. I will first
use it as a testbed to set up the PCI-passthrough and Windows 11 VMs.
That way I'll be able to reboot gpu2 without impacting the TestBot. I
will also document the result on the WineTestBot VMs page  in case
anyone wants to do the same at home.
* I updated debian11 and installed the fonts-arphic-uming package for
the Chinese tests. I suspect the debian11 update caused a lot of new
ddraw failures. (950 failures / crash instead of 1 failure,
qualitatively it makes no difference but it still needs to be
* I did a Windows Update on the w8 and w864 VMs. They are now fully
updated and while going through the check list  I found items that
probably were missing (e.g. not disabling defragmentation).
* I changed the w8 CPU from kvm32 to core2duo because Windows would not
boot otherwise; seemingly due to the lack of support for the NX bit. I
suspect that's because the host CPU went from AMD to Intel and QEmu
failed to insulate the guest from that despite the kvm32 virtual CPU
type. w864 was already running with the QEmu CPU set to core2duo so
that should be ok.
I moved the VMs around to take advantage of the new gpu1 box.
* vm3 and vm4 are now dedicated to running w1064* and w10pro64*
respectively (before they had one additional VM each). This should
help reduce the period of time during which the TestBot is less
responsive due to the nightly WineTest runs.
* I moved debian11 and debiant to gpu1 so they benefit from the
faster compilations and faster WineTest runs.
(WineTest is much slower in Wine than on Windows so maximum benefit
* I moved w864 to gpu1. The good thing is that this confirmed the old
VMs work on the new boxes too (see the kvm32 issue above).
* I moved all the other Windows VMs to vm1.
* Next the plan is to move the build VM somewhere and to retire the vm2
There will be one more reshuffling once gpu2 is in place but what
happens then will depend very much on how many test configurations use
the PCI-passthrough, Windows 11, and GitLab.
 Note: when building a Wine build server it seems one needs between
350 and 400 MB per compilation thread. For now I have allocated 16
threads to the VMs but, given that they currently still only run one
VM at a time, giving them access to all 24 thread may make more
There is also the issue of performance vs efficiency cores. But
making sure the VMs only use performance cores would require
CPU-pinning and I don't want to go there unless proven necessary.
Francois Gouget <fgouget at codeweavers.com>
More information about the wine-devel