[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Is there a way to get consistant time across different VMs?



 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.