I ran into this problem this morning after I upgraded my computer. Many sites on the internet suggest that in order to upgrade your computer to use the Hyperthreading on a Pentium 4 you have to upgrade the driver under the device manager.
However, as in my case, no other HAL was installed when I had installed Windows XP. Other Microsoft “MVP”s suggest that if a multiprocessor PC does not show up under the list of new drivers, install Windows XP on top of the existing installation to get the right HAL installed. This would mean loss of all application settings and you would have to reinstall all the security patches from Microsoft, all over again.
I did something much simpler and it seems to have worked all right. Here are the steps to enable hyperthreading support in Windows XP if your original install did not have Hyperthreading or SMP enabled.
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.
All done.
This “advice” does not come with any warranty or support. If you use this, I am not responsible for any damages or difficulties caused by this. Please use at your own risk.
[EDIT] Interesting followup from comments:
If you have applied this fix and your computer reboots while windows is loading, try this:
1) Copy ‘ntkrnlmp.exe’ and ‘halmacpi.dll’ to C:WINDOWSsystem32
2) Keep both a non-HT and HT enabled boot selection in boot.ini as shown below
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(4)partition(1)WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=â€Windows XP Professional†/fastdetect
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=â€Windows XP Professional (HT)†/fastdetect /kernel=ntkrnlmp.exe /hal=halmacpi.dll
3) Run “Windows XP Professional (HT)†in Safe Mode (to run Safe Mode, hit F8 at the OS Select screen)
4) While in Safe Mode, Windows will update the drivers for your HT processor
5) Restart your computer and select “Windows XP Professionalâ€
Even though you are not specifically passing boot parameters to Windows XP for your HT processor, Windows already loaded the correct drivers while you were in Safe Mode.
You can test this by opening the task manager and selecting performance. You will see two separate graphs.