Windows XP Host, 100% CPU, no guest OS required

Discussions related to using VirtualBox on Windows hosts.
Post Reply
ego533
Posts: 2
Joined: 9. Feb 2010, 20:00
Primary OS: MS Windows XP
VBox Version: PUEL
Guest OSses: Windows 7, Windows XP, Kubuntu, Debian, Ubuntu, DOS

Windows XP Host, 100% CPU, no guest OS required

Post by ego533 »

   I am having a problem with my Dell desktop computers whereby any virtualbox guest will take 100% of CPU. The computers that have the problem run Windows XP SP3, x86 and x64. The nature of the guest does not matter. I can boot to Linux, Windows, or an old Windows 98-floppy DOS prompt.
   I have tried the following:
  • * Tried all combinations of settings for the guest
    * Turn off DEP (and PAE in x86) for the host
    * Clean Windows install (no drivers, no software, no windows update)
    * Clean windows install with drivers
    * different computers (All Dell optiplex ~3 years old - present) (Intel Pentium 4 Prescott through Intel Core2Duo)
    * Turning off and on the hardware virtualization support for the computers that support it
    * Older versions of VBOX (all of the 3.X versions)
    * Newer Beta build (r56507)
    * Turn off services on host (that are possible to stop)
    * Used different HAL's on the host including ACPI Uniprocessor, ACPI enabled, and Standard PC
    * Tried various suggested solutions like opening two guests simultaneously

   Not entirely sure if this is useful, I'm not really a programmer.. I boot to a DOS prompt from a Windows-98 boot disk (CD-ROM iso). I see the following after reaching the prompt:
- VBoxSVC.exe--->VirtualBox.exe = 99% CPU
- No I/O
- 11 threads:
  • *(1x) VirtualBox.exe 0x16b498
    *(1x) kernel32.dll!CreateThread 0x22
    *(9x) MSVCR71.dll!endthreadex 0x31
- 3 of the threads are constantly switching: VirtualBox.exe and two of the MSVCR71.dll's, one of the MSVCR71.dll's is taking 99% CPU
  • VirtualBox.exe:
    • ntkrnlpa.exe!KiUnexpectedInterrupt+0x8d
      ntkrnlpa.exe!PsDereferencePrimaryToken+0x362
      ntkrnlpa.exe!KiDeliverApc+0xb3
      ntkrnlpa.exe!ZwYieldExecution+0x19a4
      ntkrnlpa.exe!NtWaitForSingleObject+0x38c
      ntkrnlpa.exe!KeReleaseInStackQueuedSpinLockFromDpcLevel+0xb14
      ntdll.dll!KiFastSystemCallRet
      USER32.dll!GetLastInputInfo+0x105
      QtCoreVBox4.dll!QEventDispatcherWin32::processEvents+0x5d8
    MSVCR71.dll taking little CPU, but switching:
    • ntkrnlpa.exe!KiUnexpectedInterrupt+0xf0
      ntkrnlpa.exe!ZwYieldExecution+0x1938
      ntkrnlpa.exe!ZwYieldExecution+0x19a4
      ntkrnlpa.exe!NtWaitForSingleObject+0x9a
      ntkrnlpa.exe!KeReleaseInStackQueuedSpinLockFromDpcLevel+0xb14
      ntdll.dll!KiFastSystemCallRet
      VBoxRT.dll!RTTimeLocalExplode+0x1d1
      VBoxRT.dll!RTThreadReadLockDec+0x1f0
      VBoxRT.dll!RTSemMutexRelease+0x172
      MSVCR71.dll!endthreadex+0xa0
      kernel32.dll!GetModuleFileNameA+0x1b4
    MSVCR71.dll taking 99% CPU
    • ntkrnlpa.exe!KiUnexpectedInterrupt+0x8d
      ntkrnlpa.exe!PsDereferencePrimaryToken+0x362
      ntkrnlpa.exe!KiDeliverApc+0xb3
      hal.dll+0x6c0e
      VBoxVMM.dll!PDMCritSectLeave+0x60
      VBoxVMM.dll!PGMIsLockOwner+0x51
      VBoxVMM.dll!PGMPhysWrite+0x2a9
      VBoxVMM.dll!PGMR3PhysWriteU16+0x1a
      VBoxREM32.DLL!REMR3IsPageAccessHandled+0x44f
      VBoxREM32.DLL+0x8b9f
      VBoxREM32.DLL+0x1d832
      VBoxREM32.DLL!REMR3Run+0x2b
      VBoxVMM.dll!EMR3Init+0x508
      VBoxVMM.dll!EMR3ExecuteVM+0x28d
      VBoxVMM.dll!VMR3WaitU+0x66a
      VBoxVMM.dll!VMR3WaitU+0x784
      VBoxRT.dll!RTThreadReadLockDec+0x1f0
      VBoxRT.dll!RTSemMutexRelease+0x172
      MSVCR71.dll!endthreadex+0xa0
      kernel32.dll!GetModuleFileNameA+0x1b4



   The log from this run is attached as a .TXT




   Any suggestions?


-ego533
Attachments
vboxlog.txt
(44.77 KiB) Downloaded 14 times
MarkCranness
Volunteer
Posts: 875
Joined: 10. Oct 2009, 06:27
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Windows Server 2008 R2; Ubuntu 11.04; Windows 2000 Server; Windows XP

Re: Windows XP Host, 100% CPU, no guest OS required

Post by MarkCranness »

ego533 wrote:Used different HAL's on the host including ACPI Uniprocessor, ACPI enabled, and Standard PC
Have you tried different GUEST HALs (on the Windows guests)?

See here for changing the HAL.
For non-Windows guests, try turning off IO APIC (Settings>System>Enable IO APIC), if you haven't already done so.

Win9x is using an idle loop instead of HLT: the loop lets the host CPU running the Win9x virtual machine consume 100% all the time, so 100% CPU is expected.
ego533
Posts: 2
Joined: 9. Feb 2010, 20:00
Primary OS: MS Windows XP
VBox Version: PUEL
Guest OSses: Windows 7, Windows XP, Kubuntu, Debian, Ubuntu, DOS

Re: Windows XP Host, 100% CPU, no guest OS required

Post by ego533 »

This ended up being correct. I had had the bad luck to try all of the tests mentioned above which all produced the same symptom but had different causes.

   As mentioned in your other forum link, DOS and other similar systems (including Windows 95, 98) will use an idle loop, causing 100% CPU usage. Others on this forum have mentioned various programs to solve this, like "rain, waterfall or cpuidle".

   For WIndows 2000 and Windows XP, the HAL makes a difference. If I use any SMP HAL ('multiprocessor aware'), VBOX will use 100% CPU and the guest will be extremely slow. This applies to HALs like "ACPI Uniprocessor" and "ACPI Multiprocessor."

   For this case of downgrading an SMP HAL to a non-SMP HAL, there is an easier way to change the HAL than using a program like HALu. The HAL driver can simply be changed in Device Manager by manually updating the driver. A list of officially supported HAL changes can be found here: MS Knowledge Base 309283. I've done the unsupported HAL changes in the past... sometimes they work and sometimes they cause problems.. Be wary of doing the unsupported HAL changes with HALu.
Post Reply