From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24940 invoked by alias); 23 Sep 2008 16:02:54 -0000 Received: (qmail 24933 invoked by uid 22791); 23 Sep 2008 16:02:53 -0000 X-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp1.linux-foundation.org (HELO smtp1.linux-foundation.org) (140.211.169.13) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 23 Sep 2008 16:02:12 +0000 Received: from imap1.linux-foundation.org (imap1.linux-foundation.org [140.211.169.55]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id m8NG1UNE025039 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 23 Sep 2008 09:01:31 -0700 Received: from localhost (localhost [127.0.0.1]) by imap1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id m8NG1SX9008570; Tue, 23 Sep 2008 09:01:29 -0700 Date: Tue, 23 Sep 2008 16:02:00 -0000 From: Linus Torvalds To: Masami Hiramatsu cc: Mathieu Desnoyers , Martin Bligh , Linux Kernel Mailing List , Thomas Gleixner , Steven Rostedt , darren@dvhart.com, "Frank Ch. Eigler" , systemtap-ml Subject: Re: Unified tracing buffer In-Reply-To: <48D90B84.4030905@redhat.com> Message-ID: References: <33307c790809191433w246c0283l55a57c196664ce77@mail.gmail.com> <48D7F5E8.3000705@redhat.com> <33307c790809221313s3532d851g7239c212bc72fe71@mail.gmail.com> <48D81B5F.2030702@redhat.com> <33307c790809221616h5e7410f5gc37c262d83722111@mail.gmail.com> <48D832B6.3010409@redhat.com> <33307c790809221712x4fbd9781u958c98d4585e92a9@mail.gmail.com> <48D901FE.5060604@redhat.com> <20080923150410.GA28341@Krystal> <48D90B84.4030905@redhat.com> User-Agent: Alpine 1.10 (LFD 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Checker-Version: SpamAssassin 3.2.4-osdl_revision__1.47__ X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.13 Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org X-SW-Source: 2008-q3/txt/msg00769.txt.bz2 On Tue, 23 Sep 2008, Masami Hiramatsu wrote: > > 2.00GHz is the maximum(model) frequency. And 'cpu MHz' means > current frequency. (yep, now I'm using cpufreq) > Anyway, when I measured TSC drift, I killed cpuspeed service and > fixed freq to 2000. ;-) Ahh. I have an idea.. Maybe that thing does thermal throttling? Fixing the frequency at the highest setting is actually one of the worst things you can do, because if the device is thermally limited, it will still do the whole throttling thing, but now it won't do it by changing the frequency any more, it will do it by essentially forxing the external frequency down. And that is going to be *very* inefficient. You really really don't want that. Your performance will actually be _worse_ than if the CPU went to a lower frequency. And it might explain the unreliable TSC too, because I suspect constant TSC is really constant only wrt the bus clock to the CPU. The termal throttling thing is a "protect the CPU from overheating" last ditch effort, and because it doesn't lower voltage, it isn't actually at all as efficient at saving power (and thus cooling the CPU) as a real frequency change event would be. And fixing the frequency to the highest frequency in a tight laptop enclosure is the best way to force that behavior (in contrast - in a desktop system with sufficient cooling, it's usually not a problem at all to just say "run at highest frequency"). And btw, that also explains why you had so *big* changes in frequency: the throttling I think happens with a 1/8 duty cycle thing, iirc. It's supposed to be very rare with Core 2. Thermal throttling was quite common with the P4 one, and was the main overheating protection initially. These days, you should only see it for really badly designed devices that simply don't have enough thermal cooling, but if the design calls for mostly running at low frequency because it's some thing-and-light notebook with insufficient cooling (or some thick-and-heavy thing that is just total crap), and you force it to always run at full speed, I can imagine it kicking in to protect the CPU. It's obviously also going to be much easier to see if the ambient temperature is high. If you want to get best peformance, take one of those compressed-air spray-cans, and spray on the laptop with the can held upside down (the can will generally tell you _not_ to do that, because then you'll get the liquid itself rather than gas, but that's what you want for cooling). So if you can test this, try it with (a) cpufreq at a fixed _low_ value (to not cause overheating) (b) with the spray-can cooling the thing and cpufreq at a fixed high value and see if the TSC is constant then. Linus