On 09/07/2010 02:12 PM, walmart wrote:
> Hi, all:
>
> I want to test some program, which requires a high precise time. (some
> thing as rdtsc).
>
> I tested rdtsc on different VMs, they are not consistant. (I am using
> Xen 4.0, Fedora 13, 64 bit).
>
> Is there a way to get consistant high precise time across different VMs?
Hm, you're walking into a bit of a minefield.
What are your precise requirements for:
* accuracy
* resolution
* monotonicity
* cross-cpu synchronization
* cross-process synchronization
?
In general rdtsc isn't very useful as a timesource, since there are many
ways in which it can fail/do strange things from processor to processor
and system to system, so "s[a]me thing as rdtsc" doesn't tell us much.
However, in modern versions of Xen, you can turn on rdtsc emulation
which makes rdtsc generate a guaranteed global monotonic time value at a
nominal 1GHz rate (I think, or did that change to the starting CPU
speed?). But the downside is that it results in a trap'n'emulate of the
instruction which is a bit more expensive than a raw rdtsc.
Or if you have a new Intel system with a really, truly nonstop
synchronized tsc, you can use rdtsc directly.
But if neither of those are acceptable/possible, you need to use the
normal Xen system time, which has a 1ns resolution, is fairly precise,
but not generally completely monotonic between cpus. It also isn't
usable from usermode without some extra kernel patches.
J
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|