Guest performance terrible with IOapic, amazing without it

Discussions related to using VirtualBox on Linux hosts.
Post Reply
azenz
Posts: 13
Joined: 7. Aug 2007, 09:20

Guest performance terrible with IOapic, amazing without it

Post by azenz »

Installing my Windows XP guest with my Virtualbox 4.1.8 (installed from website .deb, 64 bit version) on my Kubuntu 11.10 host took an extremely long time. Booting the virgin system on my fast SSD took minutes. After some googling I found that in previous years the IOapic feature with multiple CPUs was the culprit. So I changed the system to 1 CPU with IOapic disabled, and lone behold, the system boots in about 10 secs, and performance is lightning fast! I mean you won't believe the difference. Before, even opening "My computer" took quite a while, and now it occurs instantly.

Since I use a quad core machine, that of course now means that only 1 cpu can be used by the guest OS. I am very disappointed about that. Surely, such a long-standing problem that people wrote about years ago must have been addressed by now? Anybody any suggestions?

Settings file is below:

Code: Select all

<VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.12-linux">
  <Machine uuid="{4d9a6ce5-4050-4ac6-8e4e-0d2aa5435d75}" name="WinXP" OSType="WindowsXP" snapshotFolder="Snapshots" lastStateChange="2012-01-04T22:00:29Z">
    <MediaRegistry>
      <HardDisks>
        <HardDisk uuid="{68065bc8-5948-429f-b8e9-fc695e119160}" location="WinXP.vdi" format="VDI" type="Normal"/>
        <HardDisk uuid="{295dab32-fc4a-4893-bab2-19f2aa845dc7}" location="2nd-HDD.vdi" format="VDI" type="Normal"/>
      </HardDisks>
      <DVDImages>
        <Image uuid="{78e74a3d-44c2-4407-ae09-422e160aff48}" location="/media/1F10FD8E55DF1C92/Program backup/Software/WinXP/WinXPpro-sp3-original.iso"/>
        <Image uuid="{be913414-e4f2-4cad-b866-50b628161561}" location="/usr/share/virtualbox/VBoxGuestAdditions.iso"/>
      </DVDImages>
      <FloppyImages/>
    </MediaRegistry>
    <ExtraData>
      <ExtraDataItem name="GUI/InfoDlgState" value="400,450,normal"/>
      <ExtraDataItem name="GUI/LastCloseAction" value="powerOff"/>
      <ExtraDataItem name="GUI/LastGuestSizeHint" value="1544,1069"/>
      <ExtraDataItem name="GUI/LastNormalWindowPosition" value="374,23,1544,1111"/>
    </ExtraData>
    <Hardware version="2">
      <CPU count="1" hotplug="false">
        <HardwareVirtEx enabled="true" exclusive="true"/>
        <HardwareVirtExNestedPaging enabled="true"/>
        <HardwareVirtExVPID enabled="true"/>
        <PAE enabled="false"/>
        <HardwareVirtExLargePages enabled="false"/>
        <HardwareVirtForce enabled="false"/>
      </CPU>
      <Memory RAMSize="2256" PageFusion="false"/>
      <HID Pointing="USBTablet" Keyboard="PS2Keyboard"/>
      <HPET enabled="false"/>
      <Chipset type="PIIX3"/>
      <Boot>
        <Order position="1" device="Floppy"/>
        <Order position="2" device="DVD"/>
        <Order position="3" device="HardDisk"/>
        <Order position="4" device="None"/>
      </Boot>
      <Display VRAMSize="32" monitorCount="1" accelerate3D="false" accelerate2DVideo="true"/>
      <RemoteDisplay enabled="false" authType="Null" authTimeout="5000">
        <VRDEProperties>
          <Property name="TCP/Ports" value="3389"/>
        </VRDEProperties>
      </RemoteDisplay>
      <BIOS>
        <ACPI enabled="true"/>
        <IOAPIC enabled="false"/>
        <Logo fadeIn="true" fadeOut="true" displayTime="0"/>
        <BootMenu mode="MessageAndMenu"/>
        <TimeOffset value="0"/>
        <PXEDebug enabled="false"/>
      </BIOS>
      <USBController enabled="true" enabledEhci="true"/>
      <Network>
        <Adapter slot="0" enabled="true" MACAddress="080027F95D22" cable="true" speed="0" type="82540EM">
          <DisabledModes/>
          <NAT>
            <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
            <Alias logging="false" proxy-only="false" use-same-ports="false"/>
          </NAT>
        </Adapter>
        <Adapter slot="1" enabled="false" MACAddress="080027F1893F" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="2" enabled="false" MACAddress="080027A49E7B" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="3" enabled="false" MACAddress="0800279946DF" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="4" enabled="false" MACAddress="080027F6912B" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="5" enabled="false" MACAddress="08002742191B" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="6" enabled="false" MACAddress="0800276457D1" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="7" enabled="false" MACAddress="0800270E1E1E" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
      </Network>
      <UART>
        <Port slot="0" enabled="false" IOBase="0x3f8" IRQ="4" hostMode="Disconnected"/>
        <Port slot="1" enabled="false" IOBase="0x2f8" IRQ="3" hostMode="Disconnected"/>
      </UART>
      <LPT>
        <Port slot="0" enabled="false" IOBase="0x378" IRQ="4"/>
        <Port slot="1" enabled="false" IOBase="0x378" IRQ="4"/>
      </LPT>
      <AudioAdapter controller="AC97" driver="Pulse" enabled="true"/>
      <RTC localOrUTC="local"/>
      <SharedFolders>
        <SharedFolder name="External-HDD" hostPath="/media/1F10FD8E55DF1C92" writable="true" autoMount="true"/>
        <SharedFolder name="Internal-HDD" hostPath="/media/5691cc51-183f-459e-a0e1-dd0ca3c6399e" writable="true" autoMount="true"/>
        <SharedFolder name="home-adrian" hostPath="/home/username" writable="true" autoMount="true"/>
      </SharedFolders>
      <Clipboard mode="Bidirectional"/>
      <IO>
        <IoCache enabled="true" size="5"/>
        <BandwidthGroups/>
      </IO>
      <HostPci>
        <Devices/>
      </HostPci>
      <Guest memoryBalloonSize="0"/>
      <GuestProperties>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/Product" value="Windows XP Professional" timestamp="1325713075042466000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/Release" value="5.1.2600" timestamp="1325713075043354000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/Version" value="" timestamp="1325713075043799000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/ServicePack" value="3" timestamp="1325713075044530000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Version" value="4.1.8" timestamp="1325713075044974000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/VersionExt" value="4.1.8" timestamp="1325713075045355000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Revision" value="75467" timestamp="1325713075049878000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/InstallDir" value="C:/Program Files/Oracle/VirtualBox Guest Additions" timestamp="1325713075050362000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxControl.exe" value="4.1.8r75467" timestamp="1325713075051438000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxHook.dll" value="4.1.8r75467" timestamp="1325713075052202000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxDisp.dll" value="4.1.8r75467" timestamp="1325713075052925000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxMRXNP.dll" value="4.1.8r75467" timestamp="1325713075053722000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxService.exe" value="4.1.8r75467" timestamp="1325713075055138000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxTray.exe" value="4.1.8r75467" timestamp="1325713075055896000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxGINA.dll" value="-" timestamp="1325713075069737000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxCredProv.dll" value="-" timestamp="1325713075075484000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLarrayspu.dll" value="4.1.8r75467" timestamp="1325713075076331000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLcrutil.dll" value="4.1.8r75467" timestamp="1325713075082925000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLerrorspu.dll" value="4.1.8r75467" timestamp="1325713075083720000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLpackspu.dll" value="4.1.8r75467" timestamp="1325713075085015000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLpassthroughspu.dll" value="4.1.8r75467" timestamp="1325713075086618000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLfeedbackspu.dll" value="4.1.8r75467" timestamp="1325713075087793000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGL.dll" value="4.1.8r75467" timestamp="1325713075088958000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxGuest.sys" value="4.1.8r75467" timestamp="1325713075104026000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxMouse.sys" value="4.1.8r75467" timestamp="1325713075104863000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxSF.sys" value="4.1.8r75467" timestamp="1325713075105598000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxVideo.sys" value="4.1.8r75467" timestamp="1325713075106286000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/HostVerLastChecked" value="4.1.8" timestamp="1325713088263170000" flags=""/>
        <GuestProperty name="/VirtualBox/HostInfo/GUI/LanguageID" value="en_US" timestamp="1325713330129048000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/LoggedInUsersList" value="" timestamp="1325714423830958000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/V4/IP" value="" timestamp="1325714425407622000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/MAC" value="" timestamp="1325714425408461000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/V4/Netmask" value="" timestamp="1325714425409083000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/Status" value="" timestamp="1325714425409848000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/V4/Broadcast" value="" timestamp="1325714425410647000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/Count" value="" timestamp="1325714425412611000" flags=""/>
      </GuestProperties>
    </Hardware>
    <StorageControllers>
      <StorageController name="IDE Controller" type="PIIX4" PortCount="2" useHostIOCache="true" Bootable="true">
        <AttachedDevice type="HardDisk" port="0" device="0">
          <Image uuid="{68065bc8-5948-429f-b8e9-fc695e119160}"/>
        </AttachedDevice>
        <AttachedDevice type="HardDisk" port="0" device="1">
          <Image uuid="{295dab32-fc4a-4893-bab2-19f2aa845dc7}"/>
        </AttachedDevice>
        <AttachedDevice passthrough="false" type="DVD" port="1" device="0">
          <Image uuid="{78e74a3d-44c2-4407-ae09-422e160aff48}"/>
        </AttachedDevice>
      </StorageController>
    </StorageControllers>
  </Machine>
</VirtualBox>
MOD Edit: Please use code tags on long lists
sid1950
Posts: 6
Joined: 5. Oct 2011, 21:49
Primary OS: openSUSE
VBox Version: OSE other
Guest OSses: Windows XP Pro
Location: London, UK
Contact:

Re: Guest performance terrible with IOapic, amazing without

Post by sid1950 »

I've just tried this and it works. My host is openSuse 12.1 running on a Dell Optiplex GX620. The processor is a Pentium D950 dual core 3.2Ghz with 4Gb DDR2. Apps on Suse are very fast. Previously I had tried running Windows XP Pro with the guest CPU set to 2 cores with IO APIC on. It started and ran very slowly. I re-installed with 1 cpu core and no IO APIC and the difference is amazing. Very fast starting and running. Apps open as if they were on a native XP Pro.
Best wishes

Sadiq
mschwartz
Posts: 92
Joined: 18. Oct 2010, 21:01
Primary OS: MS Windows 7
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: ubuntu

Re: Guest performance terrible with IOapic, amazing without

Post by mschwartz »

I run Kubuntu 11.10 and Windows XP as a guest with multiple CPUs enabled and IO APIC turned on, and it's quite fast.

My machine has 8G of RAM, and I give the VM 1.5G. My CPU is a core I5 with 4 cores, no hyperthreading.

Maybe you need to check your BIOS settings to see if you have VM support features turned off?

The VM does run faster with 1 CPU, though. IO APIC is a performance penalty, but not like what you describe (for me).
azenz
Posts: 13
Joined: 7. Aug 2007, 09:20

Re: Guest performance terrible with IOapic, amazing without

Post by azenz »

VM support is enabled in the bios. For me, the iopic performance penalty is very high, and for others such as sid1950 it seems to be, too. That seems to be a real problem in Virtualbox and I wonder if an error ticket has been filed or if the issue is known, widespread etc. Otherwise Virtualbox is great, but that is a serious drawback. Not sure if there are workarounds?
Ken Hagan
Posts: 43
Joined: 1. Oct 2009, 17:42
Primary OS: Debian other
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Windows (various)
Location: UK

Re: Guest performance terrible with IOapic, amazing without

Post by Ken Hagan »

This slowdown was quite pronounced on my hosts until recently when I removed IO-APIC from all my 32-bit guests. The worst affected machine (by some margin) was one with McAfee anti-virus software, which would burn 100% CPU for several minutes following boot-up.

I have an Intel/Xubuntu host and an AMD/Win2k3 host, so the problem might be "by design" rather than platform-dependent. (Since both have just two cores, the restriction to uniprocessor guests isn't a big deal for me.) It became particularly noticeable in the latter part of last year, so I think the 4.1.x releases may be especially prone. There's a 4.0.16 lying about somewhere, so perhaps it would be worth making comparisons.
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Re: Guest performance terrible with IOapic, amazing without

Post by Technologov »

arenz and others:
If you want such threads to be treated seriously, you must upload vbox.log (either via pastebin.com or attach to forum directly).

I can tell you, that I install Windows XP in ~7 minutes, using the new vbox-unattended, with default vbox settings.

Core i7 2600K + WD Black 7200 RPM
Attachments
Windows XP Production-2012-02-26-01-28-32.log
(50.43 KiB) Downloaded 38 times
Post Reply