CVSROOT:        /cvs
Module name:    src
Changes by:     mgloc...@cvs.openbsd.org        2012/11/10 02:45:06

Modified files:
        sys/arch/amd64/amd64: identcpu.c locore.S 
        sys/arch/amd64/include: cpu.h specialreg.h 
        sys/arch/i386/i386: locore.s machdep.c 
        sys/arch/i386/include: cpu.h specialreg.h 
        sys/arch/i386/isa: clock.c 

Log message:
Recent x86 CPUs come with a constant time stamp counter.  If this is
the case we verify if the CPU supports a specific version of the
architectural performance monitoring feature and read out the current
frequency from the fixed-function performance counter of the unhalted
core.

My initial motivation to implement this was the Soekris net6501-70
which comes with an Intel Atom E6xx 1.60GHz CPU.  It has a constant
time stamp counter plus speed step support and boots on the lowest
frequency of 600MHz.  This caused hw.cpuspeed and hw.setperf to
reflect the wrong values.

The diff is a cooperation work with jsg@.  The fixed-function
performance counter read code comes from a former diff of him.

OK jsg@

Reply via email to