I'm using this Windows XP computer at work right now and I realized it's poor performance may be due to it only using one core, details follows:

  • Processor is a Pentium E5400
  • The multi-core feature is enabled in BIOS
  • Device Manager shows both cores under "Processors"
  • Intel Processor Identification Utility shows both cores
  • CPU-Z only detects one core
  • Task Manager's performance tab only shows one graph ("One graph per CPU" option is enabled).
  • While doing heavy operations CPU goes to 100%, I would expect it to go to 50%
  • Process Explorer (by sysinternals) also shows only one graph.
  • msconfig has no option checked under "BOOT.INI"->"Advanced options" (and if I try to check /NUMPROC I only have the "1" option)

I'm puzzled, it looks like the second core is detected as hardware but it's not being used. Any help?

  • Have you tried putting in another hdd, installing Windows XP, and verifying what it shows?
    – Ramhound
    Nov 29 '12 at 15:20
  • That's my company's pc at work, sadly I'm not allowed to play that much with it (actually I'm surprised I'm allowed to install application and access the BIOS). I take from your answer that you suggest something went wrong with the OS installation, right? Nov 29 '12 at 15:35
  • I'll post a comment rather than an answer, as not sure it will work in your case. See incore.net/winxp-multicpu. If your XP installation was ghosted from a single CPU machine (as can happen in corporate environments) you might need to enable multi-core support.
    – DaveP
    Nov 29 '12 at 15:49

Short answer -- wrong HAL installed.

Long answer -- in Device Manager under Computer it should say ACPI Multiprocessor PC. If it doesn't then OS was probably installed while multi-core was disabled in the BIOS.

To fix the problem, run the following command:

rundll32 syssetup,SetupInfObjectInstallAction ACPIAPIC_MP_HAL 128 %windir%\inf\hal.inf

You should have all cores working after reboot.


Before ACPIAPIC_MP_HAL installs, the corresponding Hardware ID may have to be set in the registry. From an admin cmd use sysinternal's psexec to start regedit with system permissions:

psexec -i -s regedit

In the registry editor navigate to:


and change:


Mind there is a newline after the string, leave it as it is.


I have seen this happen with working with VM's and XP. Have you ever replaced the CPU of this computer from a single core CPU to a dual core CPU?

The easiest solution for this when I encountered this with a VM where I added an additional core is doing a "Repair Install" of XP and it will refresh the internals of XP to use all of the available cores.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.