On 24 Jan 2005 at 17:54, Christoph Lameter wrote: > On Mon, 24 Jan 2005, john stultz wrote: > > > We talked about this last time. I do intend to re-work ntp_scale() so > > its not a function call, much as you describe above. > > > > hopelessly endeavoring, > > hehe.... But seriously: The easiest approach may be to modify the time > sources to allow a fine tuning of the scaling factor. That way ntp_scale > may be moved into tick processing where it would adjust the scaling of the > time sources up or downward. Thus no ntp_scale in the monotonic clock > processing anymore.
It depends what you want to have between ticks: If your ticks are too wide, the clock will do a little jump forward at the start of a new tick; if they are too narrow, the clock will jump back a bit at the start of a new tick (assuming tick interpolation and tick generation are correlated. (The old kernel code uses a constant to scale the timer's register to a tick. However if the time is too fast or slow, the interpolation will also be). Those being blessed with a GPS or better clock will be able to demonstrate the quality of the code as well as the tuning possibilities against frequency errors. > > Monotonic clocks could be calculated > > monotime = ns_at_last_tick + (time_source_cycles_since_tick * > current_scaling_factor) >> shift_factor. > > This would also be easy to implement in asm if necessary. > > tick processing could then increment or decrement the current scaling > factor to minimize the error between ticks. It could also add > nanoseconds to ns_at_last_tick to correct the clock forward. Is that what corresponds to "adjust_nanoscale()" in my PPSkit? > > With the appropiate shift_factor one should be able to fine tune time much > more accurately than ntp_scale would do. Over time the necessary > corrections could be minimized to just adding a few ns once in a while. > Regards, Ulrich - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/