CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2013/05/05 22:32:12

Modified files:
        sys/arch/amd64/amd64: identcpu.c 
        sys/arch/amd64/include: specialreg.h 

Log message:
the use of modern intel performance counter msrs to measure the number of
cycles per second isnt reliable, particularly inside "virtual" machines.
cpuspeed can be calculated as 0, which causes a divide by zero later on
which is bad.

this goes to more effort to detect if the performance counters are in use
by the hypervisor, or detecting if they gave us a cpuspeed of 0 so we can
fall through to using rdtsc.

the same change as:
src/sys/arch/i386/include/specialreg.h r.45
src/sys/arch/i386/isa/clock.c 1.49

ok jsg@

Reply via email to