Over the weekend HWBot.org uncovered a critical flaw with the time keeping method of Windows 8.
Due to a problem with the Windows 8 Real Time Clock (RTC) service, when changes are made to system frequency by software, the internal clock in Windows 8 begins to skew. The greater the change in frequency, the greater the clock skew changes. Frequency changes in BIOS do not have any impact, this only affects Windows 8 if using popular manufacturer tools like Asus TurboV, MSI Control Center, or Gigabyte Easytune – tools designed to give users the ability to change clock speeds on the fly within the OS.
Why does this happen and when?
The time shift can be verified by using an external timer such as the one included on your smartphone. HWBot.org recorded a demonstration of this which shows the windows clock counting seconds differently than the smart phone as time elapses:
The reason for the change is reported/y due to the way the RTC clock functions differently in Windows 8, a change Microsoft made in the OS in the desire for greater compatibility on platforms which may lack the hardware our PCs include for keeping accurate time on their own. Within the Windows 8 boot process, a calculation is done which is used as a reference for the Windows clock, and that calculation is based off of the current frequency the PC is running at… When that frequency is changed by software after Windows has loaded, the reference calculation is no longer valid.
HWBot.org hasn’t uncovered all the answers yet, but they immediately responded by banning Windows 8 from being used for new submissions to their rankings. A smart move, in that any PC Benchmark result achieved with Windows 8 cannot be verified if genuine by their moderators or anyone else for that matter. This affects every benchmark on Windows 8, as all benchmarks currently depend on an accurate RTC clock in order to calculate the amount of work performed in a given amount of time.
Are we getting faster or slower?
Testing so far has demonstrated that overclocking the CPU will cause Windows to count seconds faster, while downclocking the CPU will cause Windows to count seconds slower. For example, because Windows counts seconds slower after downclocking and benchmarks depend on Windows for its time measurement, the benchmark then believes it did 10 seconds worth of work when in real time it actually did 12 seconds worth. In that way, downclocking by software in Windows 8 can result in a higher benchmark score being reported. The inverse is true for overclocking.
Further testing is ongoing at this time to determine if all platforms are affected – with the nature of the problem this would appear to be the case, but initial testing has given the impression that some AMD APU based platforms may not be affected. Ongoing work will determine the breadth of the issue, as well as how it will be addressed within the PC enthusiast community which loves benchmarking the most.
It’s speculated that the issue may be patched in a future update of Windows 8, however this issue is only now being discovered so there will likely be a considerable wait for a fix. The question remains once a fix is available, how will the community determine if scores were obtained on valid patched versions of Windows 8?