From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753869AbZEDKk4 (ORCPT ); Mon, 4 May 2009 06:40:56 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752518AbZEDKkm (ORCPT ); Mon, 4 May 2009 06:40:42 -0400 Received: from gw1.cosmosbay.com ([212.99.114.194]:38921 "EHLO gw1.cosmosbay.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751567AbZEDKkl convert rfc822-to-8bit (ORCPT ); Mon, 4 May 2009 06:40:41 -0400 Message-ID: <49FEC5E1.4040900@cosmosbay.com> Date: Mon, 04 May 2009 12:39:29 +0200 From: Eric Dumazet User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: Ingo Molnar CC: "H. Peter Anvin" , "Paul E. McKenney" , Paul Mackerras , Christoph Lameter , linux kernel , Andi Kleen , David Miller , jesse.brandeburg@intel.com, netdev@vger.kernel.org, haoki@redhat.com, mchan@broadcom.com, davidel@xmailserver.org, Mike Galbraith , Peter Zijlstra Subject: Re: [BUG] perf_counter: change cpu frequencies References: <49F767FD.2040205@cosmosbay.com> <49F76F6C.80005@cosmosbay.com> <49F77108.7060509@cosmosbay.com> <20090429091130.GA27857@elte.hu> <49F9821C.5010802@cosmosbay.com> <20090430115736.GA24349@elte.hu> <49F9B0F0.40306@cosmosbay.com> <49F9CCD0.2080005@cosmosbay.com> <49FD347F.6030306@cosmosbay.com> <20090503072535.GA9455@elte.hu> In-Reply-To: <20090503072535.GA9455@elte.hu> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.6 (gw1.cosmosbay.com [0.0.0.0]); Mon, 04 May 2009 12:39:31 +0200 (CEST) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ingo Molnar a écrit : > * Eric Dumazet wrote: > >> Eric Dumazet a écrit : >>> 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 :) >>> >> Update : >> >> Mike Galbraith suggested me to try various things, and finally, I discovered >> this frequency change was probably a BIOS problem on my HP BL460c G1 >> >> System Options -> Power regulator for Proliant >> >> [*] HP Dynamic Power Savings Mode >> [ ] HP Static Low Power Mode >> [ ] HP Static High Performance Mode >> [ ] OS Control Mode >> >> >> I switched it to 'OS Control Mode' >> >> Then acpi-cpufreq could load, and no more frequencies changes on a "perf -a sleep 10" >> session, using or not cpufreq. >> (Supported cpufreq speeds on these cpus : 1999 & 2999 MHz) >> >> So it was a BIOS issue > > ah! That makes quite a bit of sense. The BIOS interfering with an OS > feature ... Was that the default setting in the BIOS? This was default setting in BIOS, yes. > >> # perf stat -a sleep 10 >> >> Performance counter stats for 'sleep': >> >> 80005.418223 task clock ticks (msecs) >> 80266 context switches (events) >> 3 CPU migrations (events) >> 486 pagefaults (events) >> 240013851624 CPU cycles (events) << good >> >> 239076501419 instructions (events) >> 679464 cache references (events) >> cache misses >> >> Wall-clock time elapsed: 10000.468808 msecs > > That looks perfect now. > > It would also be really nice to have a sysrq-p dump of your PMU > state before you've done any profiling. Is there any trace of the > BIOS meddling with them, that we could detect (and warn about) > during bootup? Difference is that on BIOS set to 'OS Control Mode' I see one more entry in ACPI list : [ 0.000000] ACPI: SSDT cfe5b000 004C9 (v01 HP SSDTP 00000001 INTL 20030228) ... And these 8 additional lines after (one per cpu) [ 0.706697] ACPI: SSDT cfe5c000 002DA (v01 HP SSDT0 00000001 INTL 20030228) [ 0.707250] ACPI: SSDT cfe5c300 002DA (v01 HP SSDT1 00000001 INTL 20030228) [ 0.707768] ACPI: SSDT cfe5c600 002DA (v01 HP SSDT2 00000001 INTL 20030228) [ 0.708376] ACPI: SSDT cfe5c900 002DF (v01 HP SSDT3 00000001 INTL 20030228) [ 0.708964] ACPI: SSDT cfe5cc00 002DA (v01 HP SSDT4 00000001 INTL 20030228) [ 0.709567] ACPI: SSDT cfe5cf00 002DA (v01 HP SSDT5 00000001 INTL 20030228) [ 0.710122] ACPI: SSDT cfe5d200 002DA (v01 HP SSDT6 00000001 INTL 20030228) [ 0.710713] ACPI: SSDT cfe5d500 002DA (v01 HP SSDT7 00000001 INTL 20030228) Also, if this option is set to default (HP Dynamic Power Savings Mode) I get : # modprobe acpi-cpufreq FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.30-rc4-tip-01560-gdd5fa92/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko): No such device but no kernel message logged. Might be possible to add some kind of warning yes, I can test a patch if you want.