TestBot News

Francois Gouget fgouget at codeweavers.com
Mon Jun 6 12:55:11 CDT 2022

New hardware

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 [1] (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 
  the TestBot).

* 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 [2] in case 
  anyone wants to do the same at home.

VM updates

* 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[12] 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 [2] 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.

VM reshuffling

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.

[1] 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.

[2] https://wiki.winehq.org/Wine_TestBot_VMs#Windows_configuration

Francois Gouget <fgouget at codeweavers.com>

More information about the wine-devel mailing list