From: Vojtech Pavlik <vojtech@suse.cz>
To: Kyle Moffett <mrmacman_g4@mac.com>
Cc: Andi Kleen <ak@muc.de>, Chris Friesen <cfriesen@nortel.com>,
john cooper <john.cooper@timesys.com>,
linux-kernel@vger.kernel.org
Subject: Re: spinaphore conceptual draft
Date: Mon, 30 May 2005 20:40:59 +0200 [thread overview]
Message-ID: <20050530184059.GA2222@ucw.cz> (raw)
In-Reply-To: <02485B05-6AE5-4727-8778-D73B2D202772@mac.com>
On Mon, May 30, 2005 at 02:04:36PM -0400, Kyle Moffett wrote:
> On May 30, 2005, at 13:46:35, Andi Kleen wrote:
> >>tsc goes backwards on AMD? Under what circumstances (I'm curious,
> >>since I'm running one...)
> >
> >It is not synchronized between CPUs and slowly drifts and can even run
> >at completely different frequencies there when you use powernow! on a
> >MP system.
>
> Unsynchronized is fine, we're only taking differences of short times.
If you ask on two CPUs in a quick succession, you can get a negative
time difference.
> Slow drift is likewise OK too. As to the different frequencies, how
> different are we talking about?
1GHz vs 2GHz, for example.
There is cpufreq, which changes the CPU clocks in large steps under the
kernel's control, and there is spread spectrum, which wiggles them just
a tiny bit (1-4%) back and forth (independently on different CPUs) to
minimize EMI.
> Also, on such a system, is there any way to determine a relative
> frequency, even if unreliable or occasionally off?
You can measure it. With cpufreq you have a good guess when you switch
that the new frequency will have a certain ratio to the old one.
> >It can be used reliably when you only do deltas on same CPU
> >and correct for the changing frequency. However then you run
> >into other problems, like it being quite slow on Intel.
>
> The deltas here are generally short, always on the same CPU, and can be
> corrected for changing frequency, assuming that said frequency is
> available somehow.
The fact the deltas are on the same CPU helps. The shortness of the
interval doesn't, since on AMD CPUs RDTSC is executed speculatively and
out-of-order, and the order of two close RDTSC instructions isn't
guaranteed, as far as I remember.
> Ideally it would be some sort of CPU cycle-counter, just so I can say
> "In between lock and unlock, the CPU did 1000 cycles", for some value
> of "cycle".
This may be doable if precision isn't required.
> >I suspect any attempt to use time stamps in locks is a bad
> >idea because of this.
>
> Something like this could be built only for CPUs that do support that
> kind of cycle counter.
RDTSC on older Intel CPUs takes something like 6 cycles. On P4's it
takes much more, since it's decoded to a microcode MSR access.
--
Vojtech Pavlik
SuSE Labs, SuSE CR
next prev parent reply other threads:[~2005-05-30 18:42 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-27 22:31 spinaphore conceptual draft (was discussion of RT patch) David Nicol
2005-05-28 1:04 ` Kyle Moffett
2005-05-29 5:25 ` David Nicol
2005-05-29 13:41 ` Kyle Moffett
2005-05-29 8:42 ` Nikita Danilov
2005-05-29 13:45 ` Kyle Moffett
2005-05-29 13:29 ` Joe Seigh
2005-05-29 15:32 ` Kyle Moffett
2005-05-30 11:06 ` spinaphore conceptual draft Andi Kleen
2005-05-30 14:52 ` Chris Friesen
2005-05-30 16:40 ` Andi Kleen
2005-05-30 17:11 ` Chris Friesen
2005-05-30 17:46 ` Andi Kleen
2005-05-30 18:04 ` Kyle Moffett
2005-05-30 18:40 ` Vojtech Pavlik [this message]
2005-05-30 18:54 ` Kyle Moffett
2005-05-30 19:24 ` Andi Kleen
2005-05-30 19:28 ` Andi Kleen
2005-05-30 19:39 ` Kyle Moffett
2005-05-31 22:25 ` Paul E. McKenney
2005-05-28 1:05 ` spinaphore conceptual draft (was discussion of RT patch) john cooper
2005-05-28 2:02 ` Steven Rostedt
2005-05-28 13:59 ` Alan Cox
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=20050530184059.GA2222@ucw.cz \
--to=vojtech@suse.cz \
--cc=ak@muc.de \
--cc=cfriesen@nortel.com \
--cc=john.cooper@timesys.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mrmacman_g4@mac.com \
/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