I've got a Lenovo n100 laptop that's 3 years old. It dual boots the original Windows XP that came with it and Ubuntu, and I just now noticed that the XP installation, on the Task Manager, only shows 1 CPU.

The device manager does show 2 processors (it's a core duo T2300), but it looks like one of them isn't being used. Googling showed that SP2 needed a specific hot fix to enable this, but nothing shows up on SP3, and when I downloaded the said hot fix it refuses to install, saying I have a newer solution.

(Just to make things clear, I checked and it's not that Task Manager shows all CPUs in the same graph.)

Does anyone know how to fix this?


Run the msconfig utility, go to the BOOT.INI tab, then click Advanced.

The NUMPROC checkbox should be unchecked to use all processors.
As a test, try to check it and see what does the drop-down list contain.
If it contains only the value 1, then something is really wrong.


NOTE : This answer is from 2009, please treat it with respect for its old age.
Especially : No downvotes, please.

| improve this answer | |
  • It's unchecked, and checking it does show 2 CPUs. Any other ideas? – abyx Dec 18 '09 at 15:52
  • 1
    @abyx: try checking the /NUMPROC box and specifically selecting the 2 CPU option. reboot. does that allow use of both cores? – quack quixote Dec 18 '09 at 17:19
  • @~quack - that did the trick! – abyx Dec 19 '09 at 11:22
  • Then the question is why it needs to be explicitly set since it should not need to. Maybe it is a driver issue? Maybe the Computer entry in Device Manager is incorrect? – Synetech Feb 21 '11 at 18:18
  • @Synetech inc.: I don't think you will get more info out of a 2-months old post. – harrymc Feb 21 '11 at 18:22

This has worked for us (from: http://www.pcreview.co.uk/forums/change-hal-out-reinstall-t2562052.html ):

  1. Disable driver signing (My Computer > Properties > Hardware...)

  2. Run this command line exactly:

    rundll32 syssetup,SetupInfObjectInstallAction ACPIAPIC_MP_HAL 128 %windir%\inf\hal.inf
| improve this answer | |
  • 1
    2 restarts required and everything works like a charm - thanks!!! – Matthias Hryniszak Jun 9 '12 at 22:57
  • This worked when I visualized a physical machine from our backups. – Jeff F. Mar 4 '15 at 18:15
  • this worked on an old XP VM, I didn't need to disable driver signing either! – Jeff Atwood Dec 31 '15 at 9:36
  • This is the best answer. – Igor Levicki May 22 '18 at 7:05

This worked for me (VirtualBox XP Pro)...

1) Go into c:\windows (your install path), search for sp3.cab. Open this cab file with 7-zip (although explorer may be able to natively open the file, if it can't then download 7-zip from sourceforge).

2) a) Extract halmacpi.dll to c:\windows\system32

b) Extract ntkrnlmp.exe to c:\windows\system32

3) Edit c:\boot.ini

Note: You will need to uncheck the Read-only property so you can save your changes. Set back to Read-only once complete.

Copy the line that looks like this:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn

Make the copied entry look like this:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP MultiCore" /fastdetect /NoExecute=OptIn /kernel=ntkrnlmp.exe /hal=halmacpi.dll

Now you have a dual-boot option to utilize single or multicore (TaskManager will show two CPU graphs if this was successful). If multicore boots and works properly, then you can delete the single core entry from boot.ini.

| improve this answer | |
  • I'm curious, how exactly does this work? What does adding /kernel=ntkrnlmp.exe /hal=halmacpi.dll do to force it to show all of the CPU cores? Welcome to Super User, by the way :) – nhinkle Apr 25 '13 at 5:16
  • From what I understand, this forces Windows to use the multi-core kernel: ntkrnlmp.exe and hardware abstraction layer: halmacpi.dll. It's likely the system was installed using single-core kernel and HAL. – James Jul 6 '13 at 16:43
  • +1 for this one! I found this very useful. I just have to mention I made a mistake when editing boot.ini and my VM went unusable (needed to edit boot.ini using the host OS to recover it) so edit carefully! – Eugenio Miró Jan 20 '14 at 20:56
  • Late to the comment party, but yes, backups are always a good idea! Just copy it to boot.ini.orig or something similar. But yes, if you hose it you'll need some sort of recovery tool. A linux live CD image will work well, just mount it as your CD device in VirtualBox. – James Feb 11 '15 at 22:41
  • If you see the following error message on boot: Windows could not start because the following file is missing or corrupt: <Windows root>\system32\hal.dll. Please re-install a copy of the above file. then... despite the error saying that hal.dll is missing you forgot to copy the halmacpi.dll and ntkrnlmp.exe files to the C:\Windows\System32 folder. These can also be copied from the C:\Windows\ServicePackFiles\i386 folder. – AlwaysLearning Jan 30 '16 at 0:41

Here's another possibility.

Do you have installed the uniprocessor or multiprocessor version of XP?

Uniprocessor systems have as kernel ntoskrnl.exe, while multiprocessor systems have ntkrnlmp.exe in C:\WINDOWS\system32.

Also in Device Manager, expand Computer. You should see "ACPI Multiprocessor PC". If you're seeing "Advanced Configuration and Power Interface (ACPI) PC" then this is wrong.

What do you see?
If either of the above two checks are wrong, you'll have to reinstall XP.

| improve this answer | |

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