[BUG] perf_counter: change cpu frequencies

Eric Dumazet
2009-04-30T16:09:20Z

Eric Dumazet a écrit :

> But if I use plain "perf stat -a sleep 10"
> it seems I get wrong values again (16 G cycles/sec) for all next perf sessions
>

Well, I confirm all my cpus switched from 3GHz to 2GHz, after

"perf stat -a sleep 10"

(but "perf stat -e instructions -e cycles -a sleep 10" doesnt trigger this problem)

Nothing logged, and /proc/cpuinfo stills reports 3 GHz frequencies

# cat unit.c
main() {
int i;
for (i = 0 ; i < 10000000; i++)
getppid();
}
# time ./unit

real 0m0.818s
user 0m0.289s
sys 0m0.529s
# perf stat -a sleep 10 2>/dev/null
# time ./unit

real 0m1.122s
user 0m0.482s
sys 0m0.640s

# tail -n 27 /proc/cpuinfo
processor : 7
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5450 @ 3.00GHz
stepping : 6
cpu MHz : 3000.102
cache size : 6144 KB
physical id : 1
siblings : 1
core id : 3
cpu cores : 4
apicid : 7
initial apicid : 7
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm tpr_shadow vnmi flexpriority
bogomips : 6000.01
clflush size : 64
power management:

# grep CPU_FREQ .config
# CONFIG_CPU_FREQ is not set

perf_counter seems promising, but still... needs some bug hunting :)

Thank you