Windows Updates slow, takes hours after reboot updating registry under QEMU KVM

By Alasdair Lumsden on 19 May 2013

Hi Folks,

Another blog post primarily aimed at helping people searching for a particular problem. I really struggled to find anything on this, and I hate that, so when I found the problem and the fix, I thought I’d share.

Basically, if you’re running Windows Server 2008 under QEMU KVM, sometimes after a Windows Update it can get stuck for hours updating the registry. It will sit there for hours fiddling with things under Registry Machine Schema:

7444/17432 (RegistrymachineSchemawcm://Microsoft-windows...)

The problem isn’t with CPU or Disk IO, but actually with the default cirrus VGA driver QEMU uses. It has a pathological performance issue in text mode, resulting in it taking a long time for console messages to be written out. Since Windows Update’s post-reboot registry update will report progress by writing to the console potentially hundreds of thousands of times, it can take many hours for the update to finish.

To fix this, instead use the ""std graphics driver. On SmartOS you can do this by running:

vmadm update [UUID] vga=std

This significantly improved the performance – the registry updates took under 30 seconds after a reboot.