WineTestBot status update

Francois Gouget fgouget at
Sun Oct 27 06:19:50 CDT 2013

We switched to the new WineTestBot near the start of September. Early on 
it ran into a problem when it was flooded with tests due to the 
__WINESRC__ tests work and it failed to keep up.

The reason is that as time went on the time it takes to get the VMs back 
to a clean state ready to run the tests (the revert time) kept 
increasing as can be seen on this graph:

There one can see the increased activity in september that what was 
caused by the surge in test patches. But the most remarkable feature is 
the Windows XP revert times which increase linearly, reaching over 30 
minutes. The revert times for the other VMs are much more random but 
still seem to increase somewhat (1).

The reason for the increase is still unknown. The revert time fell down 
a few times and now I suspect this corresponds to times when the VM was 
restored from backup.

So at the start of October I upgraded to QEMU 1.6.0 and restored all the 
VMs from backup, hoping this would solve the problem. The revert times 
did get much better and the WineTestBot now manages to keep up:

The upgrade happened around the 2nd of october and the revert times fell 
at that point. But looking at more recent data it's clear that the 
Windows XP revert times are increasing again, while those of the other 
VMs remain stable (see vm1-revtimes.xls for the raw data).

That XP VM is one of the first ones I created, so it probably was 
created with a pretty old QEMU version. Futhermore it was only an out of 
the box SP2 and did not have any of the later updates. So I decided to 
recreate it from scratch, using QEMU 1.6.0, and to add all the other 
updates as I was at it. And I'm hoping that this time things will be 
better. That's why this VM is currently in 'maintenance' mode.

I also took down the 32-bit Windows 8 VM for maintenance. It too is 
missing proper updates and the plan is to upgrade it to Windows 8.1.

Another issue has been that the tests are running a bit slow, a 
particular point of pain was msi:action and msi:install which were 
regularly timing out. See:

So while rebuilding the Windows XP VM I did some performance tests. That 
paid off. I found that switching the emulated disk cache mode from 
writeback to default roughly halves the msi run times:

msi:action and msi:install went from an average of 99 and 90 seconds 
down to 48 and 39 seconds and they are not timing out anymore. The 
remaining troublesome tests are now ddraw:ddraw{2,4,7}, shell32:shlexec, 
and winspool.drv:info.

I also uncovered two other potential performance issues:
 * Some VMs have Windows Defender and apparently it was starting a full 
   disk scan as soon as the VM was ready to run the tests. That's 
   clearly not good so I disabled Windows Defender in all VMs.

 * Most VMs were still using 20% of the CPU when idle. That's fine if 
   only one VM is running but could impact performance (through 
   increased interrupt rates) if many are running at once (like on the 
   WineTestBot). Apparently the culprit is the USB Tablet device that's 
   added by default. So I removed it from all VMs too (and now the mouse 
   is even more laggy than before when I work on the VMs :-( But that 
   does not impact the tests).

So there is still a lot of work to do on the WineTestBot, and that's 
not even counting fixing all the failing tests.

(1) It's almost as if the increasing Windows XP revert times were 
pulling up the other VM revert times. Yet there's only one revert at a 
given time, so I don't see how this would be possible.

(2) Setting the cache mode to writeback was improving the performance 
quite a bit with the pre-upgrade QEMU version. But obviously it's not 
true anymore. Another interesting point is that the Virtio mode improves 
performance by a factor of 10 (down from 450 seconds to 45 in 
msi:action). Yet Windows 8 posts the fastest times yet in the basic IDE 
mode (~23 seconds). I couldn't get Windows 8 working with the Virtio 
disk yet and I have not verified that it's really doing the same set of 
tests. So that remains to be confirmed.

Here is some performance data taken from the Windows XP VM while the 
TestBot was idle. From it cache=default looks like it's a completely 
separate mode!

msi:action | msi:install | msi:msi
448 460 520| 487 439     | 238 229  VGA, qcow2 ide disk, cache:default
44 45 42   | 47 49 46    | 24 23 21 VGA, qcow2 virtio disk, cache:default
48 45 50   | 47 48 48    | 23 23 24 VMVGA/VGA, qcow2 virtio disk, cache:default
47 46      | 48 46       | 23 22 22 VMVGA, qcow2 virtio disk, cache:default
47 47      | 49 48       | 24 23    VMVGA, raw virtio disk, cache:default
62 67 67   | 64 60 63    | 29 27 27 VMVGA, raw virtio disk, cache:none
111 92 72 113 | 101 101  | 37 37 40 VMVGA, raw virtio disk, cache:writethrough
61 64 53   | 70 59 58    | 36 28 29 VMVGA, raw virtio disk, cache:writeback

46 44      |             |  VMVGA, raw virtio disk, cache:default
71 55 68   |             |  VMVGA, raw virtio disk, cache:writeback
65 71 72 69|             |  VMVGA, raw virtio disk, cache:none
76 118 111 |             |  VMVGA, raw virtio disk, cache:writethrough
50 48 47   |             |  VMVGA, raw virtio disk, cache:default

And the preliminary Windows 8 performance. I hope it holds up.
msi:action | msi:install | msi:msi
23 22 22   | 16 15 16    | 13 13 15 VGA, qcow2 ide disk, cache:default

Francois Gouget <fgouget at>

More information about the wine-devel mailing list