Enable Hyperthreading after upgrading motherboard
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.
88 Comments »
The URI to TrackBack this entry is: http://mindfulmusings.net/weblog/2004/10/16/enable-hyperthreading-after-upgrading-motherboard/trackback/
RSS feed for comments on this post.
Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
I worked on the puter this weekend to… I am going to go linux on one of my boxes thought, I am sick of microsux
Comment by logtar 10/18/2004 @ 11:50 amI installed a new mobo and P4 with hyperthreading on 10/17, and if it wasnt for your article, I would never have known that hyperthreading was not automatically enabled in XP. I enabled hyperthreading in BIOS, I looked in the hardware config prior to using your tip, and it showed 2 processors, but task manager showed only one. Also, PCMark benchmarking program showed hyperthreading available, but not enabled. Afterwords, task manager shows both, and PCMark shows hyperthreading enabled. Thanks a bunch for the GREAT tip!
Comment by Joe Bonner 10/19/2004 @ 11:21 pmthanks, worked great!
Comment by justin mazzi 11/29/2004 @ 9:59 pmThanks a million! I spent about a hour looking for a fix to this problem and this was the only plain english site to tell you how to fix the HT problem. It worked great and saved me about half my time on my video project!
Comment by jim 12/24/2004 @ 4:15 amYou are an absolute genius- I am no computer whiz but managed to enable HT using your simple guide in under 5 minutes. I had some trepidation, but it went so easily – and hey no relaoding windows as everyone else seems to suggest.
Comment by Randy B 12/28/2004 @ 11:02 pmVery grateful
Has anyone had any problems with this procedure? I am working on a system with a lot of I/O and video capture hardware and would hate to reinstall everthing. Additionally, considering that hyperthreading was enabled during the first installation, I question whether or not a second installation of XP-Pro and SP2 (ref. Microsoft Solution) would be an effective fix to the problem. —-BJF
Comment by Ben F 1/5/2005 @ 4:05 pmOn the same PC I have 2 installations of XP Pro – I installed them both a few days apart (one as a backup) – I have just noticed that the version on which I installed XP SP1 followed immediately by SP2 has no HT visible (I never checked b4 I installed SP2) but the SP1 only system does – This might be another “undocumented feature” with XP and some mainboards – in my case a 915 chipset MSI 7028 board. I’ll try this HT re-enable “fix” now” and will repost if it doesnt work. Thanks for the info.
Comment by Manfred 1/7/2005 @ 5:51 pmh’mmm – according to this http://frontline.compuware.com/nashua/kb/doc/932.asp XP renames ntkrnlmp.exe to ntoskrnl.exe and halmacpi.dll to hal.dll on multiprocessor installation. I checked this out on my hyperthreaded XP install by using file properties => original file name and the original file names are there – so i hesitate to copy the files again. my symptoms are Intel hyperthreaded CPU, Intel motherboard (they better have it right!) and XP Pro, device manager shows ACPI Multiprocessor PC and two cpus, but show only one CPU in task manager and can’t set process affinity. I’m still looking …
Comment by AndyN 1/11/2005 @ 12:18 pmExcellent job! I’d just resinstalled windows due to some other problems and lost the HT support. Screwed around for an hour trying to figure out what was wrong and how to fix it. Came across this and five minutes later it was fixed. Wish I could buy you a beer or something, but will have to settle for a heartfelt “Thanks!”
Comment by Jeff 1/23/2005 @ 10:21 pmHi, I just wanted to say thankyou for this tip. Typically, I had unsuccessfully searched high and low on Microsoft support and finally resorted to the power of Google which gave me your page almost immediately
... This tip worked perfectly on my system, I had disabled Hyperthreading both in the bios and using the update driver method in the device manager. (in order to utilize a behemoth audio software called Gigastudio which violently disagreed with Hyperthreading). A later update of the audio software to support HT meant I needed to backtrack and re-enable HT, doh! [sound of slapping forehead]. Your instructions worked perfectly here on an Asus P4P800 with XP Pro. Thanks hugely.
Comment by The Bob Campbell 1/30/2005 @ 10:15 amRobert.
This didn’t work for me on XP-MCE 2005. When I reboot… it won’t load windows (asks me to boot in safe mode, if I tell it to, it just reboots again and does the same thing). I definitely have HT enabled, and ACPI.
Comment by Michael 2/3/2005 @ 11:56 ami was looking a way to enable XP to support my HTT, but thanks to your article i was finnaly able to do that
also if you dont mind i put a link on my forum to your site
http://vbulletin.alexus.org/showthread.php?p=974#post974
thanks man
Comment by alexus 2/4/2005 @ 1:22 amThanks for the tip…It worked perfectly. I’ve been reading through forums & web support for the past 3hrs before coming across this suggestion. Thank-you.
Comment by Simon 2/11/2005 @ 6:25 amDoes this work for XP Home as well?
Comment by Dave 2/13/2005 @ 5:09 pmGenius!
Comment by J 2/26/2005 @ 3:15 pmI’ve been trying to get hyperthreading back for a year and this is the first method that has worked.
Thanks!
Brilliant! Only solution I found on the web that didn’t involve some kind of reinstall. Almost as good as drinking beer straight from a bottle. Brilliant! Thank you very much!
Comment by Peter 4/5/2005 @ 3:21 pmThis worked perfectly for me too on me Dell PWS370 w/ XP Pro. The file size for the existing HAL.DLL was the same as the HALMSAPACI.DLL. I did not have to change the HAL. I tested both and both worked!
Cudos!
Comment by Joe 4/15/2005 @ 4:45 pmWorked great, THANKS! saved me a LOT of trouble. Now only if there was a way to do this for Windows 2000
Comment by Mike 5/12/2005 @ 11:47 amOutstanding! This also works for my case: true multiprocessor recognition in XP Professional(not just hyperthreading). I went from a one-proc Supermicro server motherboard to a two-processor server version (two identical Intel procs). I also have a multi-boot system and had NO problem with two-proc recognition in Win 2000 Prof; I just upgraded the computer driver in Device Manager. (Mike, in reply 18 above, just do this if you have 2000 Professional). In XP however, only “Standard PC” appeared, with no other driver option showing when you try to upgrade. I needed non-APCI MPS multiprocessor PC for my 1999-2000 motherboard, which corresponds to HALMPS.DLL, not HALMACPI.DLL like in the example. Pre-2001 motherboards are not likely to have the ACPI standard. The suggested technique worked great, and required no reinstall, no repair and no upgrade; no use of XP CD at all! I had spent many hours on researching the problem and talking to Microsoft (they recommend an Upgrade on the same partition using the install CD, hitting F5 when it prompts for F6 Raid Drivers, which then requires a later reinstallation of all Service Packs and Hot Fixes (Ugh!). One note of warning when copying NTKRNLMP into System32 … there is the older version (2002) of about 1800 kB and a very new version (2004) of about 2000 kB that comes with the latest hot fixes. THE OLD VERSION OF NTKRNLMP WORKED FINE, BUT WHEN I GOT CUTE AND TRIED THE NEWER VERSION IT WOULDN”T BOOT. I went back to the older 2002 version of NTKRNLMP and it worked fine again. Mark, thanks again for the easy fix in BOOT.INI! I owe you a dinner gift certificate at Red Lobster. My e-mail is davidharrington@comcast.net. Send me a note and I’ll do it! Dave Harrington Troy, Michigan May 12, 2005
Comment by David Harrington 5/12/2005 @ 7:29 pmBrilliant.
Worked on 3 diffrent computer all with no issues
Just a note so things dont complain later on (i.e. SP2 or later)
Once you have changed the line and installed the new acpi device and confirmed the extra cpu is there in taskmanager
You can then remove the kernal and hal commands. I know some SP’s dont like installing when you are running a custom kernal
1. Add commands to boot.ini
Comment by [BT]Black V 5/16/2005 @ 1:23 am2. reboot let new hardware be detected
3. reboot remove lines
4. reboot again if you want to check, otherwise your fine
If you remove the lines, my experience has been that the computer reverts back to single processor, but if it works for you, thats a good deal!
Comment by Mark 5/16/2005 @ 8:22 amThanks, but I will still blame you if it doesn’t work.
Comment by Bobby 5/31/2005 @ 8:34 pmThis didn’t work for me. I have an Asus P5GD2 deluxe, with a 3ghz cpu. In device manager it has always shown 2 cpu’s under processor. HT is enabled in the bios. I can’t seem to get the 2 cpu windows to show up in the task manager…
Comment by Paul 6/24/2005 @ 4:50 pmI was reading my system overview from 3DMark03 and it said that Hyperthreading was available but disabled. So I went to device manager and it lists ACPI Uniprocessor PC so i’m confused. Is it because it’s disabled in BIOS or somthing else. I have not checked the BIOS.
Comment by cato 6/28/2005 @ 6:27 pmI’m using a 865PE NEOII and this solution has no Fault whatsoever – HT is A for away… Thanks for the tip man
Comment by Archie 6/30/2005 @ 3:45 amman seems like it’s working for everyone! i put it in the boot.ini and restarted but still not displaying dual cpu’s i am probably doing something wrong. can anyone help me?
Comment by Prakash 7/3/2005 @ 3:41 pmHave a Dell Optiplex GX280 and this method worked great to get HT working again. In my case there’s no need to install SP2, just copy the files into the system32 directory and do the same modifications to the boot.ini file.
Comment by Matthew 8/10/2005 @ 8:18 amTried following instructions. PC doesnt boot. Someone mentioned that the new version of ntkrnlmp.exe does not work. Where can I get the old version please?
Comment by Jason 8/11/2005 @ 3:23 pmI can’t find boot.ini on my PC. can anyone help? thanks…
Comment by pipus 8/13/2005 @ 6:56 amhey friends,
I have recently purchased a new computer Asus 915 board ,Pentium 3.0 with 1GB RAM.The problem I am facing is that my PC keeps on rebooting when the windows xp screen comes.I am using SATA 160GB Seagate hard drive.The windows boots perfectly in safe mode but does not comes up under Normal Windows .Even tried with known Good Configuration but still so far no luck.
Can anybody guide me.
Thanks & Regards
Ankush Grover
Comment by ankush grover 8/16/2005 @ 11:51 amDidn’t work for me strangely: After putting in the files and editing boot.ini (added rather than replaced the entry), when the MP option was selected the WinXP screen faded in and then the system spontaneously rebooted itself. I swear that the filenames are absolutely correct.
Comment by Alwyn Tan 8/18/2005 @ 4:31 amDo you only replace the “/NoExecute=OptIn” with “kernel=ntkrnlmp.exe /hal=halmacpi.dll” or do you really change the “Microsoft Windows XP Professionalâ?? with “XP Professional MPâ?? – wasn’t sure if this was a typo or anything ?
Comment by Dward 8/23/2005 @ 9:45 pmHave tried this with XP Home with no success. Does this enabling hyperthreading workaround work only with XP Pro?
Comment by Merv J Ryan 8/30/2005 @ 2:00 amThanks
Merv
I’ve answered my own question – yes, this workaround DOES work with XP Home. The ACPI was turned off in BIOS. All OK now and hyperthreading working 100% on Asus P5P800 mainboard.
Many thanks to you Mark. Regards.
Comment by Merv J Ryan 9/2/2005 @ 6:46 amHi! I followed your instructions, well, to an extent, but I did not get it to work. At boot I saw that it was the HT kernel that booted (it said two processors found), however, I got a bluescreen after loading a bit. If anyone would care to help, please see http://www.nordichardware.com/forum/viewtopic.php?p=13234 for more information. Kind regards, Mathias
Comment by Mathias 11/27/2005 @ 3:02 pmNot working on My Dell Optiplex GX520 …..
Try to pick the new boot.ini entry but it just reboots the PC
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINDOWS=”Microsoft Windows XP Professional SP” /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(0)partition(2)WINDOWS=”Microsoft Windows XP Professional MP” /noexecute=optin /fastdetect /sos /kernel=ntkrnlmp.exe /hal=halmacpi.dll
halmacpi.dll 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
ntkrnlmp.exe 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
sucks
Comment by SoreGums 12/4/2005 @ 12:20 pmSoreGums you must replace the
Comment by Adam 1/17/2006 @ 8:20 pmmulti(0)disk(0)rdisk(0)partition(1)WINDOWS=â??Microsoft Windows XP Professionalâ?? /fastdetect /NoExecute=OptIn
With
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=â??XP Professional MPâ?? /fastdetect /kernel=ntkrnlmp.exe /hal=halmacpi.dll
Take out the “NoExecute” part
Thanks for saving me alot of time. Smart and elegant. Nice work!
Comment by santo napoli 2/14/2006 @ 5:02 pmIt can be done easier without editing boot.ini. I remember reading long time ago that during the installation Windows detects the hardware and finds proper hal*.dll and nt*.exe, renames them to hal.dll and ntoskrnl.exe and places them into the system32 directory. I just upgraded my processor and could get the hyperthreading support. I googled this page, and the instructructions here helped me figure out that the following should work. I copied halmacpi.dll and ntkrnlmp.exe to an empty directory, renamed them to hal.dll and ntoskrlnl.exe and copied the newly named files to system32 directory agreeing to overwrite the existing files. I figured the Windows File Protection should be happy because these files are signed by Microsoft. And yes, after reboot Windows detected new hardware, and after another reboot I had two windows for two virtual CPUs in Task Manager. This way programs that don’t like non-standard kernels should be happy. Hope this helps.
Comment by pov 3/20/2006 @ 3:39 amI recommend pov’s method. It makes sense and works well.
Comment by devsk 4/21/2006 @ 2:20 pmPOV’s method will run into trouble in a regular windows Boot since those files are locked and cannot be replaced. You can do that from Safe Mode.
Comment by Mark 4/21/2006 @ 2:51 pmno, those files aren’t locked in windows. They are locked at boot time only when loading. I am sure because I did this with two systems, one a few months ago and another just now.
Comment by devsk 4/21/2006 @ 3:23 pmAwesome devsk!
Comment by Mark 4/25/2006 @ 9:41 pm[...] Enable Hyperthreading after upgrading motherboard [...]
Pingback by Jeff Rasmussen’s Healthcare IT Blog » Messing with Multiprocessor HALs 5/2/2006 @ 8:24 pmI need to get this working, not because of a motherboard upgrade, but because at my company we do an image install of Windows XP over the network. Sadly, I don’t have the halmacpi.dll file as it is not a windows XP install that was upgraded to SP2. I tried getting halmacpi.dl_ off of the XP SP2 CD but it is half the size of my current hal.dll and when I try to restart it says that hal.dll is missing or corrupt. I am downloading the redistributable SP2 installer and hopefully it’ll extract it’s files before it tells me that I already have SP2.
Comment by Chris Lauretano 6/7/2006 @ 10:17 amNevermind, I feel like an idiot. I forgot that you have to use the EXPAND command to uncompress the files that are on the CD and copy them to c:windows\system32.
Now to reboot and see how she runs.
Comment by Chris Lauretano 6/7/2006 @ 10:28 amGreat resource! I was afraid I was gonna have to reinstall windows but pov’s method works great, no problems at all
Comment by Theo 6/23/2006 @ 8:23 pmThank you Mark for posting this fix.
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:\WINDOWS\system32\
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.
Comment by cypher181 6/23/2006 @ 11:01 pmKindly let me know how to enalbe Hyperthreading in my dell precesion 380 workstation, iam using WinXP with sp 2 and reqular updates.
Comment by Hari.G 8/7/2006 @ 2:30 amSorry guys, i didnt got it to work with Windows XP PRO (service pack2 and all updates to it that i can think about)
No matter what i did, it give a niel walue in the startup:
2 operating systems generated, one weird named, and 1 (default) autogenerated i guess.
Tryed to modify both boot.ini at root and in system32, and in all thinkable ways you can do.
Doesnt matter, it just screw up or just dont start the HT up at all.
Gah.. i guess i have to reinstall windows on that machine, it will take less time then doing this lol.
But im glad it worked for some of them out there
OBS! i didnt see this last “fix-post” because i didnt read all posts, maybe a good idea if author change the first post, else people gets really confused (like me).
Comment by Henrik 8/14/2006 @ 10:29 amThanks anyway, i just dont see a reason why i would try anymore, since its pretty simple to reinstall.
/bow
I am a noob when it comes to doing this but i got it to work fine first try
woot…THANKS
Comment by porterman 8/22/2006 @ 10:26 pmJust to bring to your attention that should somebody copy your boot.ini syntax there are errors in that line. First is the quotation marks which must be checked and replaced in notepad and secondary there is a backslash missing between the last bracket and windows.
Comment by John 9/29/2006 @ 7:44 amWorked for me – awesome – thanks
Comment by Jo-el 10/3/2006 @ 7:51 pmI got the same setup as Henrik and obtained the same result. I can’t boot anymore … Will have re-install the entire thing
Comment by Silmara 10/5/2006 @ 12:04 pmThanks a lot! This is great. Did this, seems to have worked, although I never saw a “new hardware detected” message, even after multiple reboots (tried safe and regular modes). Others above talked about “going through the installation of a new kernel” – how does this happen? In any case, I see in device manager “acpi multiprocessor pc” and two processors, and in task manager two CPU panels. PCMark05 shows HT enabled (“two HTT processors per core”). The only thing that doesn’t seem to match up is that Intel’s HT test app fails the processor stage (though BIOS and chipset are ok). Any idea why? I guess this all means HT is working… just that last nagging doubt.
Comment by Paul 10/19/2006 @ 3:48 pmMy experience suggests a different approach. Open Device Manager, expand Computer, and you will see your motherboard listed. Even if the type is identified correctly go to Update Driver, install from a list / specific location, don’t search. pick the driver, click next, select the approriate multiprocessor pc hardware abstraction layer (you best pick the right one or you’ll be in deep $hit), click next. It will install. It should tell you that you need to reboot your pc after this. Reboot. This fixed the problem for me and I am on Windows Server 2003. I lost my hyperthreading after uninstalling then reinstalling SP1. Hope this helps someone.
Comment by Scott Lloyd 11/23/2006 @ 8:15 pmVery very good work. Saved me a ton of time. Screw microsoft for not thinking of something so essential!
Comment by samir 12/15/2006 @ 4:01 amAwesome directions. Works as advertised…
Comment by Justin 12/17/2006 @ 3:51 amthose who arent having success with this method may want to read on as I had partial success doing the above after upgrading from a non-HT 2.8a northwood to a 3.0e prescott but it resulted in an extremely unstable system: 60% of the time booting into windows would result in a spontaneous reboot a few seconds after the splash screen – sometimes windows would finish booting up and appear to be relatively stable (HT enabled and working in windows) for hours at a time but then the system would suddenly randomly lock up. subsequent reboots would often result in the before mentioned rebooting problem. very frustrating. initially assumed this had to do with hardware problem(s) (i.e. – insufficient core voltage, overheating etc. due to the new pressie cpu) and despite much tweaking had no further success in getting the system stable. during this process i discovered that turning off HT in BIOS would result in perfect boots every time and no lock ups. curious, i dug back into details of the two files which in this procedure get copied into the system folder. discovered that i had no less than 4 different versions of ntkrnlmp.exe in various places on the system drive. the one originally copied into the system folder from the c:\windows\servicepackfiles directory as described in this procedure was the oldest of all the versions (dated 2004 i believe). out of curiousity took the newest (dated 2006, version xxx.2658) and replaced the old one, rebooted and voila! no more rebooting problems and so far no more random lockups! my expreience has been that even with SP2 installed that directory may not always contain the latest version and so it may be worthwhile to do a search on the system drive for that file and to use the latest version that you find. a search on the halmacpi.dll file yieled only 1 version and doesnt appear to affect system stability. ymmv of course…
Comment by thefook 2/1/2007 @ 2:30 pmthose who arent having success with this method may want to read on as I had partial success doing the above after upgrading from a non-HT 1.8a northwood to a 3.0e prescott but it resulted in an extremely unstable system: 60% of the time booting into windows would result in a spontaneous reboot a few seconds after the splash screen – sometimes windows would finish booting up and appear to be relatively stable (HT enabled and working in windows) for hours at a time but then the system would suddenly randomly lock up. subsequent reboots would often result in the before mentioned rebooting problem. very frustrating. initially assumed this had to do with hardware problem(s) (i.e. – insufficient core voltage, overheating etc. due to the new pressie cpu) and despite much tweaking had no further success in getting the system stable. during this process i discovered that turning off HT in BIOS would result in perfect boots every time and no lock ups. curious, i dug back into details of the two files which in this procedure get copied into the system folder. discovered that i had no less than 4 different versions of ntkrnlmp.exe in various places on the system drive. the one originally copied into the system folder from the c:\windows\servicepackfiles directory as described in this procedure was the oldest of all the versions (dated 2004 i believe). out of curiousity took the newest (dated 2006, version xxx.2658) and used it to replace the old one, rebooted and voila! no more rebooting problems and so far no more random lockups! my expreience has been that even with SP2 installed that directory may not always contain the latest version of that file and so it may be worthwhile to do a search on the system drive for that file and to use the latest version that you find. a search on the halmacpi.dll file yieled only 1 version on my system and it doesnt appear to affect system stability. ymmv of course…
Comment by thefook 2/1/2007 @ 2:36 pmComment #52 did the trick for me. There is a missing backslash between Partition(1) and Windows in the changed line of the boot.ini file. I tried it without the backslash and got an odd screen selection for boot. I was given two boot options. The first selection had extraneous characters at the beginning of the option and the second selection was Windows Default. The first went into a boot loop cycle while the second got me into XP (NO Hyperthreading). I then added the backslash, it tried to boot, but errored to a CORRUPT NTFS.SYS statement and suggested I press R into the Repair Console from the install disks and have the console fix the file. Determining this was not the correct approach, I renamed the newly created Boot.ini to bootOld.ini and then renamed my (previously saved original) bootBAK.ini back to boot.ini. (Had to use NTFS4DOS or use Repair Console for access to files on an NTFS disk (this would not apply unless you have an NNTFS disk). Now, with the system bootable again and, using another previously posted comment, I changed the NTkrnlmp.exe from the earlier 1.8 MB size file to the newer 2.1 MB file and finally, yes finally got Hyperthreading to be enabled in the Task Manager. Hope this helps someone!
Comment by Peter 3/13/2007 @ 11:28 pmYO ARE GOD
!! thats all i can say it bee one full year with only one side I PRAISE YOU
!! YOU ARE GOD


! THANK YOU :):):)
Comment by Scott 3/17/2007 @ 7:59 amwhen i try to run the xp pro HT in safe mode i get hal.dll missing or corrupt
Comment by Loader 4/22/2007 @ 4:37 am(hyperthreading used to worked fine and show both graphs till I had to re-install xp pro)
I followed pov’s 3/20/2006 shortened procedure & it worked GREAT!! I can’t thank you enough. I had moved the hard drive from a AMD Athlon 1000 to a new Pentium IV with hyperthread and spent days trying to get both sides working with XP Home SP2 hoping I wouldn’t need to reload windows. This site was the only I found with a useful solution.
Comment by Tom 5/2/2007 @ 10:17 amAWSOME, It worked great: at first reboot nothing hapened then, I rebooted the system in safe mode. I was thrilled to see two cpu graphs after that. Thanx
Comment by Gurwinder 5/13/2007 @ 3:44 pmVery good article/note. Just wanted to add that this also works for Core2Duo (in my case Core2Duo 6420). My Win XP install was off a ghost image, not the actual install. I guess the multi CPU option wasn’t in the image, so I couldn’t just select the multi CPU driver in the Device Manager/Computer. I then followed this article and it worked for me without going to the Safe Mode. After the first boot with /kernel=ntkrnlmp.exe /hal=halmacpi.dll, Win XP found new hardware, asked me to reboot and next time round I had two CPUs in the Task Manager and ‘ACPI Multiprocessor PC’ under Device Manager/Computer. Thanks!
Comment by Bane 5/16/2007 @ 6:25 amGood thread, thanks to all, guys.
Comment by Eugene 6/21/2007 @ 8:15 amAfter having some trouble I think I found the reason why it does not always work.
If you have SP2 installed you may find 2 versions of hal and 4 versions of kernel on your machine. A combination of 2180 hal and 2180 kernel file version worked on all pcs I could get a hold.
Does it work on WinXP Home SP1? On some reason, software and hardware compatibility, I couldn’t upgrade it to SP2. I have real dual processors. And which file version does work on this?
Regards,
Thanks.
Comment by dyon 6/26/2007 @ 1:53 pm[...] If you system has problems, go back to the original boot.ini file and restart. This article is based off of Enable Hyperthreading after upgrading motherboard [...]
Pingback by Make My Machine Use HyperThreading at OmegaMan’s Musings 8/8/2007 @ 11:53 amThe best and by far the easiest way is to change the HAL (Hardware Abstraction Layer) by a simple tool called HAL update (HALu). See link for more information and download. Just a matter of selecting the multiprocessor ACPI from the list and reboot your computer. Known bugs: .exe does not work when placed in a folder containing spaces (for instance C:\My Documents\)
Comment by MetalMike 9/13/2007 @ 4:39 pmhay guys..what i did is ,any way when u upgrade the m/b for the new processor need to upgrade the OS too for best practice.when its done from XP automaticaly this is over writen and Ht is also enabled else this is great to try..
Comment by kamal 12/11/2007 @ 7:08 amThis really helped us a lot. Saved us from rebuilding over 50 systems. We unfortunately use a corporate image that was built on non HT systems and therefore didn’t have the second processor showing up. This fix resolved the problem and was very quick and efficient to implement.
Thanks again and you rock!
Comment by Mike 12/18/2007 @ 11:51 amhyper threading is working now with 2 graphs in performance BUT i have 2 or 3 boot options now at boot up.. i have to selct the one that says windows default.. how do i get rid of this boot options at boot up? i have a feeling i goofed on the boot.ini but i just deleted the line that was stated to delete and pasted the new one? i am not sure what you mean by make sure there is no line breaks?
Comment by steve 12/22/2007 @ 3:32 pmI have xp home with service pack 3 installed and still cant get hyper threading to work, when you say open boot.ini in a text editor where is boot.ini sorry not very pc savy thanks Mike
Comment by Mike Hendrick 12/29/2007 @ 7:24 pmMy computer will not start up now.. Even trying to boot up in safe mode makes it restart. Must I reinstall windows again?
Comment by Ann 1/11/2008 @ 1:38 amWorked great for me, awesome, thanks – I REALLY didn’t want to have to reinstall Windows again!!
Looking for boot.ini? Google is your friend!
P4 3.06GHz in a Shuttle mainboard
Comment by HappyStu 1/17/2008 @ 8:04 pmI have been looking for an easy way to do this since installing a new MB/processor a couple of YEARS ago! Kudos!
A few helpful hints:
1. Make sure you do the ‘safe mode’ boot thing. That worked perfectly.
2. There is a missing \ in the new line in boot.ini. It should be:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=â??Windows XP Professional (HT)â?? /fastdetect /kernel=ntkrnlmp.exe /hal=halmacpi.dll
(The missing \ was before WINDOWS. That’s ONE slash, it showed up as two in the preview…)
3. Make sure you search your hard drive for BOTH these files (ntkrnlmp.exe and halmacpi.dll) and use the NEWEST version (not necessarily the file with the latest date!) To see the file version (in explorer):
Right-click in the header bar (where it says Name, Size, Date Modified, etc.)
On the popup menu, click More…
In the dialog box, check File Version (it’s toward the bottom)
I’m assuming you are doing this in the Search Results window where you can see all occurrences of the files. To get there, open explorer and click Search on the toolbar… then type the filename. You want to search your boot drive (probably C:)
4. After you have successfully rebooted and all is working fine, you need to make the new OS the default. To do this:
Right-click My Computer on your desktop.
Click ‘Properties’ on the popup menu.
Click the ‘Advanced’ tab.
Click the Settings button in the ‘Startup and Recovery’ section.
In the ‘Default Operating System’ combo, select the new OS (the one with HT in the name.)
Thanks a million again.
Comment by Mike S. 2/23/2008 @ 8:25 pmI have been looking for an easy way to do this since installing a new MB/processor a couple of YEARS ago! Kudos!
A few helpful hints:
1. Make sure you do the “safe mode” boot thing. That worked perfectly.
2. There is a missing \ in the new line in boot.ini. It should be:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Windows XP Professional (HT)” /fastdetect /kernel=ntkrnlmp.exe /hal=halmacpi.dll
(The missing \ was before WINDOWS. That’s ONE slash, it showed up as two in the preview…)
3. Make sure you search your hard drive for BOTH these files (ntkrnlmp.exe and halmacpi.dll) and use the NEWEST version (not necessarily the file with the latest date!) To see the file version (in explorer):
Right-click in the header bar (where it says Name, Size, Date Modified, etc.)
On the popup menu, click More…
In the dialog box, check File Version (it’s toward the bottom)
I’m assuming you are doing this in the Search Results window where you can see all occurrences of the files. To get there, open explorer and click Search on the toolbar… then type the filename. You want to search your boot drive (probably C:)
4. After you have successfully rebooted and all is working fine, you need to make the new OS the default. To do this:
Right-click My Computer on your desktop.
Click ‘Properties’ on the popup menu.
Click the ‘Advanced’ tab.
Click the Settings button in the ‘Startup and Recovery’ section.
In the ‘Default Operating System’ combo, select the new OS (the one with HT in the name.)
Thanks a million again.
Comment by Mike S. 2/23/2008 @ 8:26 pmit works very well for me with an athlon x2 4800 dual core. thank you very much for the outstanding trick!
Comment by Christian Pogea 2/27/2008 @ 7:04 pmI tried pov’s suggestion last night and it worked on my AMD X2 5400+ Dual Core w/ MSI K9MMV Mobo. I had already removed the previous mobo drivers and updated to the MSI chipset drivers. I’m sure Mark’s directions would’ve worked also but pov’s streamlined the effort. Thank you to Mark and pov.. I knew there had to be away to do this without reinstalling/refreshing winxp… this method saved me a lot of time!
Comment by lunaticprophet 3/19/2008 @ 8:21 pmI’m trying to determine if I have HTT properly enabled in XP or not. What does the Task Manager look like with two CPUs? Are they labeled as such? My “CPU Usage” graph in Task Manager has a little vertical bar in it, so it COULD be indicating two CPUs, but the two “halves” of the graph bounce in lockstep. In Device Manager, I see two CPUs and when I open a Processor Affinity dialog, it shows CPU0 and CPU1, both checked. I’m pretty confident that everything is enabled correctly, so what is the acid test?
Many thanks to everyone who has contributed to this thread.
Comment by Earl 4/25/2008 @ 3:51 pmOK.. I’m an idiot. I did a Google Image Search on “Task Manager” and discovered the multiple graphs that represent the respective CPUs in the machine. My system shows two, so I guess everything is set up all right.
Comment by Earl 4/25/2008 @ 5:27 pm