I don't know if this helps (or if it works in Windows 2003), but I do know that in WindowsXP Professional, you can add the /ONECPU switch to your boot.ini file, like this:
\[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="...." /fastdetect
/ONECPU
I've used this option many times when debugging some SMP systems. It actually tells Windows to load the uniprocessor kernel. All that is required is a reboot. Removing the /ONECPU option will make Windows boot with a multiprocessor kernel. It's just this easy.
Message was edited by:
ReverendDeuce
There is also another a very simple way to change back to Uniprocessor!
Simply change the following lines in your hal.inf or create a copy and select it manually when changing the "hal-driver":
\[GENDEV_SYS.NTx86]
%E_ISA_UP.DeviceDesc% = E_ISA_UP_HAL, E_ISA_UP, MPS_UP, MPS_MP, ACPIPIC_UP, ACPIAPIC_UP, ACPIAPIC_MP ; Standard PC
%ACPIPIC_UP.DeviceDesc% = ACPIPIC_UP_HAL, ACPIPIC_UP, ACPIAPIC_UP, ACPIAPIC_MP ; ACPI PIC-based PC
%ACPIAPIC_UP.DeviceDesc% = ACPIAPIC_UP_HAL, ACPIAPIC_MP, ACPIAPIC_UP, ACPIPIC_UP; ACPI APIC-based PC (UP)
%ACPIAPIC_MP.DeviceDesc% = ACPIAPIC_MP_HAL, ACPIAPIC_MP, ACPIAPIC_UP, ACPIPIC_UP; ACPI APIC-based PC (MP)
%MPS_UP.DeviceDesc% = MPS_UP_HAL, MPS_UP, ACPIAPIC_UP ; MPS UP PC
%MPS_MP.DeviceDesc% = MPS_MP_HAL, MPS_MP, MPS_UP, ACPIAPIC_MP, ACPIAPIC_UP ; MPS MP PC
After that you will be able to choose any hal on an APIC system and it will be installed by the built-in routines. So far it should work without any further problems though it will need some two reboots until erverything is switched over.
Jimmy
Message was edited by:
Jimmy Bondi
How can you tell if you are running a UNP or SMP kernel in Windows?
This is shown in "device manager", under "Computer".
You've hit one of the more controversial topics that seems to come up on the boards.
From my own experience, I've used the Device Manager method for changing from single- to multi- and back to single-processor again repeatedly with 2000 and 2003 OS's on several dozen VM's. Based upon the usual replies to this question I'm not sure if I got lucky or not.
Well, if you've "just been lucky", then I have too. Ive recently been doing some "physical disk to SAN" migrations for a client, and ALL of these machines have been 2 vCPU. All of the Win2k3 servers have been fine with simply changing the driver in Device Manager.
Re: How to change Windows 2003 server Hal back to Uniprocessor"Just dont say that too loudly. I dont want the VMs to hear!"[/i] ![]()
reading all this stuff while trying to manually p2v a windows 2003 system i only can tell:
windows makes me sick! ![]()
linux p2v is just trivial, if i compare this to a windows p2v.....
ok - linux has it`s disadvantages, too - but at least it's a transparent system where you always know, what to tune - and where....
regards
roland
MR-T,
>There is a very small overhead (about 20%), but if you can live with this, >it's good
I was wondering if that number was your feeling, if you have measured it for real or if you have read it somewhere.
Thanks. Massimo.
I wrote an article on this issue... which some of you might find interesting
http://www.rtfm-ed.co.uk/docs/vmwdocs/whitepaper-upgrading-cpus-on-non-acpi-p2v.pdf
Regards
Mike
I have read that Microsoft does not support going from SMP to UNI for Windows 2003. Does anyony have a Microsoft link to support this?
Not sure if there is a killer article - it might be that MS doesn't want to "admit" in bald terms that its not very good...
Essentially, the "problem" centres around the ACPI updates that have to happen (updating the HAL.DLL and so on) and the possible chance of a BSOD... beyond that MS don't state if there a performance problem... On the forum its generally felt that while processor upgrades are fine, processor downgrades are to be avioded. It's good practise to begin with a single-cpu VM because there is less memory overhead - and on a server with a small number of physical cpu's you can experience CPU contention...
But anyway...
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q234558
Is a start... Microsoft states:
"You can use this procedure only to upgrade from a single-processor HAL to a multiple-processor HAL. If you use this procedure to change from a standard HAL to an ACPI HAL (for example, after a BIOS upgrade) or vice-versa, unexpected results may occur, including an inability to boot the computer."
The unexpected result is a possible BSOD! ![]()
Also "good" for a read is
http://support.microsoft.com/kb/237556/EN-US/
which states:
"WARNING: Note that you should not attempt to change from an ACPI HAL to a standard HAL or from a standard HAL to a ACPI HAL under any circumstances. Doing so will result in your computer not starting properly or at all. This occurs because the Plug and Play device tree that would be currently loaded is for ACPI, and it does not get reconstructed or revert to a standard HAL Plug and Play device tree. Because of this (the device tree structures being drastically different), the system is unaware of any hardware changes after the computer restarts to include the location of the boot device. Microsoft does not recommend or support this procedure as it will result in data loss. "
followed later in the article:
"WARNING: Windows 2000 displays the list of compatible computer types that can be installed when you use Device Manager to manually update. Doing anything beyond what is listed as compatible is likely to result in not being able to start your computer correctly or at all. If you do have "Advanced Configuration Power Interface (ACPI) PC" listed as your computer type or after updating to the latest ACPI BIOS, then you cannot update to the "ACPI Multiprocessor PC" through Device Manager and may result in not being able to start your computer correctly or at all. In the case of an ACPI HAL, for Windows 2000 to support or recognize both CPUs using an ACPI HAL, you must first update to the latest ACPI BIOS which is fully compliant, then re-install Windows 2000 as an upgrade so it can automatically detect and install ACPI Multiprocessor PC; if it does not, your BIOS in not fully compliant yet. "
Other support articles worth a look at are:
http://support.microsoft.com/kb/234558/EN-US/
http://support.microsoft.com/kb/309283/en-us
http://support.microsoft.com/kb/299340/
but it doesn't state much beyond the other two articles... the middle one - explains how you don't have to mess around with the HAL.DLL as Windows XP has a detection process and adding in the update HAL for you....
I've done upgrades and downgrades if 2-CPU to Single-CPU with P2V... with ACPI and non-ACPI systems. I've done it for OS's which technically isn't support by VMware with P2V.... This is easy in things like W2K3 but harder in W2K3/XP because Device Manager hides the options required to update the HAL accordingly... I had to fix my issues with Microsoft DevCon from MS DDK...
KB 309283 from TechNet states this.... and my DevCon method is a work around on this GUI restriction:
"Device Manager does not permit the change from a Non-ACPI HAL to an ACPI HAL. You must use a new install of Windows XP or Windows Server 2003 for this kind of change. Change from an ACPI HAL to a Non-ACPI HAL only for troubleshooting purposes. "
This has been development environment - and did it primarily to see if it could be done. They are not production VM's. So the process was merely one of acedemic interest.
Regards
Mike Laverick
url=http://www.rtfm-ed.co.ukRTFM Education - VMware[/url]
url=http://www.rtfm-ed.co.uk/docs/vmwdocs/Admin-P2V-2.0.pdfGuide to P2V 2.x /url
I just started a thread with a possible solution here: http://www.vmware.com/community/thread.jspa?threadID=29202
Paulo
(...) beyond that MS don't state if there a performance problem...
I found a very interesting paragraph, (http://support.microsoft.com/default.aspx?scid=kb;EN-US;811366) which reads:
Re: How to change Windows 2003 server Hal back to Uniprocessor"In Windows 2000, you can change to any listed HAL type. However, if you select an incorrect HAL, the computer may not start correctly. Therefore, Re: How to change Windows 2003 server Hal back to Uniprocessoronly compatible HALs are listed in Windows Server 2003 and Windows XP[/b]. If you run a multiprocessor HAL with only a single processor installed, the computer typically works as expected, and Re: How to change Windows 2003 server Hal back to Uniprocessorthere is little or no affect on performance[/b]."[/i] (my emphasis)
This seems to imply that, as soon as a HAL is visible and selected, it's "compatible" - I hope meaning it's supported to change to that HAL.
I guess this addresses some of the FUD around these forums... ![]()
Paulo
Yes... I think you right...
With or without GUI tools you can downgrade and upgrade at will - even on W2K3 where "valid" HAL's are "hidden"...
This is what I discovered with my DevCon tests...
The performance issue is one I have picked up from the Forum rather than any KB from Microsoft.
Its not clear whether this performance issue is associated with the way ESX "idles" a VM when it is not making requests of the CPU. As I understand it in order for ESX to idle a VM properly it has to have the correct HAL associated with its "virtual" hardware i.e 2-cpu or 1-cpu...
Kind Regards
Mike
Mike, Paulo,
idling, vSMP, correct hal, %ready, overhead associated to hal mismatches etc etc etc .... my very personal opinion is that this is a big mess and everyone is shooting in the dark ...... (and I mean everyone).
My 0.000002 cents worth comment.
Massimo.