Tuesday, May 2, 2006

Messing with Multiprocessor HALs

When XP is first installed it tries to determine what type of BIOS is available on the computer. Newer systems have what is known as Advanced Configuration and Power Interface (ACPI) capability. Unfortunately, XP doesn't always recognize a computer BIOS is ACPI capable and doesn't install the support for ACPI. Even more unfortunate is the fact that if ACPI support isn't determined at the initial install it's virtually impossible to correct this at a later time short of reinstalling XP over the top of the previous XP installation. To do so requires changing the Hardware Abstraction Layer (HAL). The chances of successfully changing a HAL after XP has been installed is pretty close to zilch.

Uh, oh, this makes this post seem pretty dumb.  Or maybe it means I am brilliant :)


Enable Hyperthreading after upgrading motherboard

Filed under:

— Mark @ 11:23 am

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.