Re: 2.6.18-rc4-mm1 - time moving at 3x speed, bisect finished

Roman Zippel
2006-08-20T17:06:50Z

Hi,

On Sat, 19 Aug 2006, Helge Hafting wrote:

> > Can you narrow it down to a specific patch in -mm?
> >
> The guilty patch is:
> ntp-add-ntp_update_frequency.patch

That's really weird, I don't really have an idea why it should go wrong
there, could you please try the patch below and send me the kernel output?
Thanks.

bye, Roman

---
kernel/time/ntp.c | 9 +++++++++
1 file changed, 9 insertions(+)

Index: linux-2.6-mm/kernel/time/ntp.c
===================================================================
--- linux-2.6-mm.orig/kernel/time/ntp.c
+++ linux-2.6-mm/kernel/time/ntp.c
@@ -46,12 +46,21 @@ long time_adjust;
static void ntp_update_frequency(void)
{
tick_length_base = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ) << TICK_LENGTH_SHIFT;
+ printk("%Lx,", tick_length_base);
tick_length_base += (s64)CLOCK_TICK_ADJUST << TICK_LENGTH_SHIFT;
+ printk("%Lx,", tick_length_base);
tick_length_base += (s64)time_freq << (TICK_LENGTH_SHIFT - SHIFT_NSEC);
+ printk("%Lx,", tick_length_base);

do_div(tick_length_base, HZ);
+ printk("%Lx\n", tick_length_base);

tick_nsec = tick_length_base >> TICK_LENGTH_SHIFT;
+ printk("u: %u.%06u, %ld.%04lu\n",
+ (u32)(tick_length_base >> TICK_LENGTH_SHIFT),
+ (u32)(((tick_length_base & ((1ll << TICK_LENGTH_SHIFT) - 1)) * 1000000) >> TICK_LENGTH_SHIFT),
+ time_offset >> SHIFT_UPDATE,
+ ((time_offset & ((1 << SHIFT_UPDATE) - 1)) * 1000) >> SHIFT_UPDATE);
}

/**