Enabling Hyperthreading in Windows XP

BEWARE: If you have a Hyperthreading processor and order a Dell with Windows XP Home installed on it, by default Hyperthreading will be turned off in the motherboard's BIOS. This sort of makes sense because Windows XP Home supports HT, but not multi-processing. (continue reading if you're a huge geek)

So the point is that if you then upgrade that machine to Windows XP Professional, you will have to re-enable Hyperthreading in the BIOS before you do the system install. And if you don't, here's what happens:

1) you use you machine for 8 months with HT turned off, while using -- daily -- applications that happily support multiple CPUs, during which time you wonder why only one CPU is showing up in your CPU Usage History graph in the task manager.

2) you stumble upon mindfulmusings.net, where the Mark Ghosh has has posted a quick 5-minute fix that will re-enable hyperthreading on your machine.

3) you smack yourself in the forehead repeatedly.

4) you sigh with resignation, because you know that your Mac friends will be making fun of you in the morning.

Helpful hints:

1) After you follow Mark's three steps, you have to reboot. During the reboot, be sure to go into the BIOS and enable Hyperthreading.

2) I found ntkrnlmp.exe in my driver cache, in my Windows folder (do a search on your machine).

3) You can download halmacpi.dll here.

--- Mark's Steps, reproduced here in case his site ever goes down ---

1) Download and install Windows XP Service Pack 2

2) Find the following files (normally in your c:windowsservicepackfiles)
- ntkrnlmp.exe
- halmacpi.dll
and copy them to your c:windowssystem32 folder. (This is considering your new motherboard has ACPI support. I know that these files will support non-ACPI computers as well, but that has not been tested)

3) Open up boot.ini in your text editor and find the following line:

multi(0)disk(0)rdisk(0)partition(1)WINDOWS=”Microsoft Windows XP Professional” /fastdetect /NoExecute=OptIn (or something of this sort)

and replace that line with:
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=”XP Professional MP” /fastdetect /kernel=ntkrnlmp.exe /hal=halmacpi.dll

Make sure there are no line breaks in that line. (backup your boot.ini and your hardware profile if you want, that might be a good idea)

Now reboot, go through the installation and reboot of the new kernel and you are done. To test that you have SMP or hyperthreading enabled, hit ctrl-alt-del and task manager to see two seperate graphs for the processors.

>>> Full Text on Mindful Musings <<<