From: torvalds@transmeta.com (Linus Torvalds)
To: linux-kernel@vger.kernel.org
Subject: Re: Locking comment on shrink_caches()
Date: Wed, 26 Sep 2001 19:12:54 +0000 (UTC) [thread overview]
Message-ID: <9ot9bm$8gu$1@penguin.transmeta.com> (raw)
In-Reply-To: <Pine.LNX.4.33.0109261123380.8558-100000@penguin.transmeta.com> <Pine.LNX.4.30.0109262036480.8655-100000@Appserv.suse.de>
In article <Pine.LNX.4.30.0109262036480.8655-100000@Appserv.suse.de>,
Dave Jones <davej@suse.de> wrote:
>On Wed, 26 Sep 2001, Linus Torvalds wrote:
>
>> > > cpuid: 72 cycles
>> > cpuid: 79 cycles
>> > Only slightly worse, but I'd not expected this.
>> That difference can easily be explained by the compiler and options.
>
>Actually repeated runs of the test on that box show it deviating by up
>to 10 cycles, making it match the results that Alan posted.
>-O2 made no difference, these deviations still occur. They seem more
>prominent on the C3 than other boxes I've tried, even with the same
>compiler toolchain.
Does the C3 do any kind of frequency shifting?
For example, on a transmeta CPU, the TSC will run at a constant
"nominal" speed (the highest the CPU can go), although the real CPU
speed will depend on the load of the machine and temperature etc. So on
a crusoe CPU you'll see varying speeds (and it depends on the speed
grade, because that in turn depends on how many longrun steps are being
actively used).
For example, on a mostly idle machine I get
torvalds@kiwi:~ > ./a.out
nothing: 54 cycles
locked add: 54 cycles
cpuid: 91 cycles
while if I have another window that does an endless loop to keep the CPU
busy, the _real_ frequency of the CPU scales up, and the machine
basically becomes faster:
torvalds@kiwi:~ > ./a.out
nothing: 36 cycles
locked add: 36 cycles
cpuid: 54 cycles
(The reason why the "nothing" TSC read is expensive on crusoe is because
of the scaling of the TSC - rdtsc literally has to do a floating point
multiply-add to scale the clock to the right "nominal" frequency. Of
course, "expensive" is still a lot less than the inexplicable 80 cycles
on a P4).
(That's a 600MHz part going down to to 400MHz in idle, btw)
On a 633MHz part (I don't actually have access to any of the high speed
grades ;) it ends up being
fast:
nothing: 39 cycles
locked add: 40 cycles
cpuid: 68 cycles
slow:
nothing: 82 cycles
locked add: 84 cycles
cpuid: 122 cycles
which corresponds to a 633MHz part going down to 300MHz in idle.
And of course, you can get pretty much anything in between, depending on
what the load is...
Linus
next prev parent reply other threads:[~2001-09-26 19:13 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-25 17:49 Locking comment on shrink_caches() Marcelo Tosatti
2001-09-25 19:57 ` David S. Miller
2001-09-25 18:40 ` Marcelo Tosatti
2001-09-25 20:15 ` David S. Miller
2001-09-25 19:02 ` Marcelo Tosatti
2001-09-25 20:29 ` David S. Miller
2001-09-25 21:00 ` Benjamin LaHaise
2001-09-25 21:55 ` David S. Miller
2001-09-25 22:16 ` Benjamin LaHaise
2001-09-25 22:28 ` David S. Miller
2001-09-26 16:40 ` Alan Cox
2001-09-26 17:25 ` Linus Torvalds
2001-09-26 17:40 ` Alan Cox
2001-09-26 17:44 ` Linus Torvalds
2001-09-26 18:01 ` Benjamin LaHaise
2001-09-26 18:01 ` Dave Jones
2001-09-26 20:20 ` Vojtech Pavlik
2001-09-26 20:24 ` Vojtech Pavlik
2001-09-26 17:43 ` Richard Gooch
2001-09-26 18:24 ` Benjamin LaHaise
2001-09-26 18:48 ` Richard Gooch
2001-09-26 18:58 ` Davide Libenzi
2001-09-26 17:45 ` Dave Jones
2001-09-26 17:50 ` Alan Cox
2001-09-26 17:59 ` Dave Jones
2001-09-26 18:07 ` Alan Cox
2001-09-26 18:09 ` Padraig Brady
2001-09-26 18:22 ` Dave Jones
2001-09-26 18:24 ` Linus Torvalds
2001-09-26 18:40 ` Dave Jones
2001-09-26 19:12 ` Linus Torvalds [this message]
2001-09-27 12:22 ` CPU frequency shifting "problems" Padraig Brady
2001-09-27 12:44 ` Dave Jones
2001-09-27 23:23 ` Linus Torvalds
2001-09-28 0:55 ` Alan Cox
2001-09-28 2:12 ` Stefan Smietanowski
2001-09-28 8:55 ` Jamie Lokier
2001-09-28 16:11 ` Linus Torvalds
2001-09-28 20:29 ` Eric W. Biederman
2001-09-28 22:24 ` Jamie Lokier
2001-09-26 19:04 ` Locking comment on shrink_caches() George Greer
2001-09-26 18:59 ` George Greer
2001-09-26 23:26 ` David S. Miller
2001-09-27 12:10 ` Alan Cox
2001-09-27 15:38 ` Linus Torvalds
2001-09-27 17:44 ` Ingo Molnar
2001-09-27 19:41 ` David S. Miller
2001-09-27 22:59 ` Alan Cox
2001-09-25 22:03 ` Andrea Arcangeli
2001-09-25 20:24 ` Rik van Riel
2001-09-25 20:28 ` David S. Miller
2001-09-25 21:05 ` Andrew Morton
2001-09-25 21:48 ` David S. Miller
[not found] ` <200109252215.f8PMFDa02034@eng2.beaverton.ibm.com>
2001-09-25 22:26 ` David S. Miller
2001-09-26 17:42 ` Ingo Molnar
2001-09-25 22:01 ` Andrea Arcangeli
2001-09-25 22:03 ` David S. Miller
2001-09-25 22:59 ` Andrea Arcangeli
2001-09-25 20:40 ` Josh MacDonald
2001-09-25 19:25 ` Marcelo Tosatti
2001-09-25 21:57 ` Andrea Arcangeli
-- strict thread matches above, loose matches on Subject: below --
2001-09-26 5:04 Dipankar Sarma
2001-09-26 5:31 ` Andrew Morton
2001-09-26 6:57 ` David S. Miller
2001-09-26 7:08 ` Dipankar Sarma
2001-09-26 16:52 ` John Hawkes
[not found] <fa.cbgmt3v.192gc8r@ifi.uio.no>
[not found] ` <fa.cd0mtbv.1aigc0v@ifi.uio.no>
[not found] ` <i1m66a5o1zc.fsf@verden.pvv.ntnu.no>
2001-09-27 1:34 ` Vojtech Pavlik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='9ot9bm$8gu$1@penguin.transmeta.com' \
--to=torvalds@transmeta.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox