Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question

4 Answers 4

up vote 4 down vote accepted

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

share|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 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.

share|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. –  TechMedicNYC 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 at 20:56

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
    
share|improve this answer
    
2 restarts required and everything works like a charm - thanks!!! –  Matthias Hryniszak Jun 9 '12 at 22:57
    
This fix works for me too. Thanks! –  Waxhead Dec 23 '12 at 22:24

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.

share|improve this answer

protected by harrymc Jan 21 at 8:06

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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