public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* some confusion in timekeeping
@ 2011-08-17  6:14 Da Zheng
  0 siblings, 0 replies; only message in thread
From: Da Zheng @ 2011-08-17  6:14 UTC (permalink / raw)
  To: linux-kernel

Hello,

I try to understand the code in kernel/time/timekeeping.c, but it's very
confusing. The most confusing part is shift. I don't understand why we need
that? I notice that (clocksource.mult >> clocksource.shift) is the number of
nanoseconds for each cycle, but I don't see a point why shift should be used.
For example, the code below makes no sense to me. If clock->mult is the number
of nanoseconds for a cycle, then we don't need to shift `tmp'.
        tmp = NTP_INTERVAL_LENGTH;
        tmp <<= clock->shift;
        ntpinterval = tmp;
        tmp += clock->mult/2;
        do_div(tmp, clock->mult);

clocksource_jiffies uses 8 as the shift value, but I don't know why it is
chosen. clocks_calc_mult_shift() is used to calculate shift and mult, but I
don't understand how the algorithm works there. It seems there is very few
documents about timekeeping.c

Can anyone help me understand the code or point me to some documents?

Thanks a lot,
Da

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-08-17  6:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-17  6:14 some confusion in timekeeping Da Zheng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox