[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 05/12] xen/pvclock: add monotonicity check
On 10/15/09 18:32, john stultz wrote: >>> No, cycle_last isn't updated on every read, only on timer ticks. This >>> test doesn't seem to be intended to make sure that every >>> clocksource_read is globally monotonic, but just to avoid >>> some boundary >>> conditions in the timer interrupt. I just copied it directly from >>> read_tsc(). >>> >> I understand but you are now essentially emulating a >> reliable platform timer with a potentially unreliable >> (but still high resolution) per-CPU timer AND probably >> delivering that result to userland. >> >> Read_tsc should only be used if either CONSTANT_TSC >> or TSC_RELIABLE is true, so read_tsc is guaranteed >> to be monotonically-strictly-increasing by hardware >> (and enforced for CONSTANT_TSC by check_tsc_warp >> at boot). >> > Ideally, yes, only perfect TSCs should be used. > > But in reality, its a big performance win for folks who can get away > with just slightly offset TSCs. > What monotonicity guarantees do we make to usermode, for both syscall and vsyscall gettimeofday and clock_gettime? Though its not clear to me how usermode would even notice very small amounts of cross-thread/cpu non-monotonicity anyway. It would need make sure that it samples the time and stores it to some globally visible place atomically (with locks, compare-and-swap, etc), which is going to be pretty expensive. And if its going to all that effort it may as well do its own monotonicity checking/adjustments if its all that important. (I can think of plenty of ways of doing it incorrectly, where you'd get apparent non-monotonicity regardless of the quality of the time source.) J _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |