Windows 8 RTC Bug Fix Discovered

/ 4 years ago


Christian Ney over at OCaholic has discovered the root cause of the Windows 8 RTC bug that led HWBot to ban all Windows 8 submissions. In collaboration with CPU-Z author Franck Delattre it was discovered that overclocking plays havoc with the four internal system timers. ACPI, HPET, RTC, and QPC are the four main timers on the system but the RTC and QPC timers go a bit crazy when the bus frequency is changed using a Windows based program.

That same problem does not happen when the frequency is set using the system BIOS and the system is made to boot from the changed frequency. The testing therefore infers that Windows 8 doesn’t use ACPI or HPET but instead a different internal timer. The bug doesn’t appear to affect AMD systems but under some circumstances it can. Based on the findings a bug fix is now available, which has to be applied using a command line setting. If there was some way for CPU-Z to represent if the bug-fix has been applied then HWBot could review its Windows 8 submission policy to allow Windows 8 submissions again.

SEE ALSO:  Microsoft Hits Back At Critics: Says Windows 8 Is Good And Only Getting Better

The conclusions from Christian Ney’s research are as follows:

  • Windows 8 benchmarking results cannot be trusted since it is very easy to fool the RTC.
  • AMD can be affected too.
  • Windows 7 doesn’t have this issue unless somebody know how to make the RTC use the same timer source as the QPC. In other words use the DMI as source.
  • Windows 8 is the only one to blame here as the RTC is set to use the same timer source as the QPC and this one fails to use an external hardware timer source on Intel platforms and use the DMI frequency instead due to missing/faulty BCD parameter.
  • To fix it: run cmd as admin and paste “bcdedit /set {current} useplatformclock Yes”

Image courtesy of OCaholic

Topics: , ,

  • art mandel

    ok I follow but how do we fix this?

    • I have updated the article. “To fix it: run cmd as admin and paste “bcdedit /set {current} useplatformclock Yes”