Re: [PATCH 24/29] ia64/pv_ops/xen: implement xen pv_time_ops.

Jeremy Fitzhardinge
2008-07-18T18:25:31Z

Luck, Tony wrote:
>
> ITC is never synchronized between cpus. On some systems all processor ITC
> may be driven from the same clock ... so an "offset from absolute system time"
> would work on those systems. But on others the ITC on different processors
> may be driven from different crystals, so the *rate* may be different. The
> difference may be small if the crystals have the same nominal frequency, but
> in the worst case the rates may be readically different (e.g. in some SGI
> systems ~1.2GHz on some cpus and ~1.6GHz on others).
>

OK. The patch in question has code like:

+ if (!time_after(delta_itm + new_itm, ia64_get_itc()))
+ stolentick = ia64_get_itc() - new_itm;
+
+ do_div(stolentick, NS_PER_TICK);

Which makes me assume that ia64_get_itc() is returning nanoseconds; does
it do the adjustment from the itc's actual rate to nanoseconds? Could
it also apply an offset?

J