Page 1 of 1

Windows 7 guest just dog slow on Vbox 3.0.4

Posted: 27. Sep 2009, 20:15
by bboaz
I have two guest VM's, a 32-bit XP guest and a 64-bit Windows 7 guest, on a 64-bit Windows Vista host. The setup for both guests are pretty much the same, with one notable exception that I'll get to in a minute. I do have a little more memory dedicated to the Windows 7 guest, 4 Gb vs. 2 Gb for the XP guest, but since my box has 16 Gb of physical memory, memory's not the issue.

Both guest VM's have just one virtual processor.

I'm testing and comparing wall clock times of a proprietary visualization application on the host and the two guest VM's. The application does OpenGL based rendering, in hardware on the host and in software on the two guests. All attempts to get 3D acceleration working on the two guests have failed, but that's a topic for another day. Most of the comparison time is dedicated to app startup, data reading, and geometry model construction; the test does only a single rendering pass. In other words, rendering speed is not the issue either.

The times:
On the 64-bit Vista host: 11 seconds
On the 32-bit XP guest: 17 seconds (impressive)
On the 64-bit Windows 7 guest: 32 seconds (ouch)

Now, the notable difference between the setup for the two guests: I/O APIC

After scouring this forum for several days (the Google feature site:VirtualBox.org is really handy), many other VB users have noted a 'performance penalty' associated with I/O APIC; others have even suggested clever ways to *try* to disable it. The VB user manual says that it MUST be enabled for 64-bit guests, and after trying one of the 'clever' ways to disable it, I believe it! I was lucky to get my 64-bit VM back in one piece after the attempt. As far as I can tell, there's no way to disable I/O APIC for a 64-bit guest, at least for VB 3.0.4.

So to my question: the need for I/O APIC appears to be bound up in the subject of SMP support; if I were to use an earlier version of VB (say 2.2.4) without SMP support, would I be able to disable I/O APIC and therefore make my Windows 7 VM run faster? Or, maybe, I/O APIC is just a symptom of the SMP problem on VB 3 - as many others have pointed out, SMP is essentially broken at present, particularly on 64-bit hosts/guests. My box has two 5130 Intel Xeon processors; all attempts to get multiprocessing working in my Windows 7 guest were met by either a BSOD or a hang in the guest once it was started. Or maybe this is an issue with the installed Windows 7 kernel; since my box has two processors, did the installer install the SMP kernel only to find that the 'virtual hardware' is not providing reliable SMP support?

I'm just trying to get my head around why there's a significant time difference between the two guest VM's. Any information or ideas would be greatly appreciated.

Thanks in advance.

Re: Windows 7 guest just dog slow on Vbox 3.0.4

Posted: 1. Oct 2009, 21:08
by DEmberton
I recently cloned an XP physical machine to a Virtual Box (3.0.0) VM, and it was UNBELIEVABLY slow. I ran the XP repair in the VM to make it boot, and it took literally 5 or 6 hours, all because I'd set it to use 2 CPUs which turns on IOAPIC. Once I'd switched it off (and worked out how to change the HAL in XP), it was like upgrading from a 286 to an i7 :wink: .

Interestingly I have Windows 7 RC1 both 32 and 64 bit set up with dual cores (and so IOAPIC) and both perform fine.

Re: Windows 7 guest just dog slow on Vbox 3.0.4

Posted: 2. Oct 2009, 13:21
by SSCBrian
Windows 7 performs just fine for me with single processor. However, if I enable a second virtual processor it occasionally crashes with a weird rainbow striped screen. Performance also degrades slightly with more than one processor.