All versions of Windows that support multiple processors, including Windows XP Professional and all versions of Windows 2000/2003, rely on the system BIOS for information on speed, stepping, core voltage and bus-speed multiplier. On a properly-functioning system, all of this information should be reported correctly. However, if a system's BIOS or the flash memory into which system information is written becomes corrupt, this information can be misreported.
When this happens, an error of Event ID 41 is logged in the System error log, with the following text:
The CPUs in this multiprocessor system are not all the same revision level. To use all processors the operating system restricts itself to the features of the least capable processor in the system. Should problems occur with this system, contact the CPU manufacturer to see if this mix of processors is supported.
This problem is misleading because it may cause a system administrator to think that the processors themselves are bad. Possible causes for this problem include viruses, or even static electricity discharge. Even small amounts of static can cause random changes in the BIOS's flash memory, and corruption to the BIOS itself. (It is possible for a processor to become damaged by a static discharge, but it is more likely that the BIOS or the CMOS may become corrupt first.)
Unless the System error log is being monitored, this problem may not become fully manifest until programs that depend on multiple processors misbehave. For instance: multi-threaded applications suddenly begin running very slowly, or simply slow down and then stop after a few seconds. Programs like VMWare, which depend on BIOS processor information to perform timing adjustments, may malfunction completely. Many, if not all, of the benefits of having multiple processors will be lost.
To fix the problem and guard against future errors:
- Download a fresh copy of the BIOS and flash the system with it. This will not only insure that the BIOS is uncorrupted, but will forcibly erase the BIOS's flash memory and force all processors to be redetected.
- Force the system CMOS to reset. This can be done in a number of ways: by removing the system's CMOS battery, or by selecting an option in BIOS that forces a redetection of all hardware. The wording for this option may vary, but it is usually an option like "Reset Configuration Data."
- Set any BIOS or motherboard options that disable changes to BIOS. Each BIOS advertises this function a little differently; some describe it as antivirus protection, since there are viruses that do attempt to destroy the BIOS by overwriting it or scrambling the BIOS's flash memory.
If the problem persists, there may be a genuine problem with the processor or motherboard.
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter. Check out his Windows 2000 blog for his latest advice and musings on the world of Windows network administrators – please share your thoughts as well!
This was first published in February 2004