[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/14/09 20:26, Dan Magenheimer wrote:
> > As long as we are going through the trouble of making
> > this monotonic, shouldn't it be monotonically increasing
> > (rather than just monotonically non-decreasing)?  The
> > rdtsc instruction and any suitably high-precision
> > hardware timer will never return the same value
> > on subsequent uses so this might be a reasonable
> > precedent to obey.  E.g.
> >
> > +   return ret > xen_clocksource.cycle_last ?
> > +           ret : ++xen_clocksource.cycle_last;
> 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).

Xen-devel mailing list



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