Index: sys/x86/x86/tsc.c =================================================================== --- sys/x86/x86/tsc.c (revision 352137) +++ sys/x86/x86/tsc.c (working copy) @@ -146,8 +146,15 @@ if (cpu_high < 0x15) return (false); do_cpuid(0x15, regs); - if (regs[0] == 0 || regs[1] == 0 || regs[2] == 0) + if (regs[0] == 0 || regs[1] == 0 || regs[2] == 0) { + if (cpu_high >= 0x16) { + u_int freq_regs[4]; + do_cpuid(0x16, freq_regs); + tsc_freq = (uint64_t) freq_regs[0] * 1000000; + return (true); + } return (false); + } tsc_freq = (uint64_t)regs[2] * regs[1] / regs[0]; return (true); }