>Did some more testing and it gets even weirder. When I boot in always >low I powernowd warns that the CPU speeds is 600. When I boot in aways >high, it reports 1200. The CPU ranges from 800-1600. psrinfo reports >these values when booted. How does powernowd determine the frequency?
It reads the CPU's registers: static uint32_t get_state_speedstep(int *freq) { uint64_t reg = rdmsr(IA32_MSR_PERF_STATUS); uint32_t st = IA32_MSR_CUR_PSTATE(reg); *freq = IA32_PSTATE_FREQ(st); if (debug_est) check_throttling(); return (st); } No idea whether this code is proper. Casper