OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
CVS: cvs.openbsd.org: src

From: David Gwynne (dlgcvs.openbsd.org)
Date: Sun May 05 2013 - 23:32:12 CDT


CVSROOT: /cvs
Module name: src
Changes by: dlgcvs.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