How to enable multiple processors on XP SP 3?

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.

image

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


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
    

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.


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.