Index: linux-2.6.7/include/linux/timex.h
===================================================================
--- linux-2.6.7.orig/include/linux/timex.h
+++ linux-2.6.7/include/linux/timex.h
@@ -429,6 +429,8 @@
 		GET_TI_NSECS(time_interpolator_get_counter(),time_interpolator);
 }
 
+extern unsigned int ti_debug;
+
 static inline void time_interpolator_update(long delta_nsec)
 {
 	unsigned long counter=time_interpolator_get_counter();
@@ -441,10 +443,16 @@
 	 * interpolator clock is running slightly slower than the regular clock. 
          */
 
-	if (delta_nsec < 0 || (unsigned long) delta_nsec < offset)
+	if (delta_nsec < 0 || (unsigned long) delta_nsec < offset) {
+		if (ti_debug)
+			printk(KERN_INFO "continue O=%lu delta=%ld offset=%lu ti_offset=%lu set to %ld nanoseconds.\n",GET_TI_NSECS(counter,time_interpolator),delta_nsec,offset,time_interpolator->offset,offset - delta_nsec);
 		time_interpolator->offset = offset - delta_nsec;
-	else
+	} else {
+		if (ti_debug)
+			printk(KERN_INFO "reset O=%lu delta=%ld offset=%lu ti_offset=%lu skipping %ld nanoseconds.\n",GET_TI_NSECS(counter,time_interpolator),delta_nsec,offset,time_interpolator->offset,delta_nsec-offset);
+
 		time_interpolator->offset = 0;			/* Early tick. Resync */
+	}
 	time_interpolator->last_counter = counter;
 }
 
Index: linux-2.6.7/kernel/timer.c
===================================================================
--- linux-2.6.7.orig/kernel/timer.c
+++ linux-2.6.7/kernel/timer.c
@@ -1429,6 +1429,7 @@
 struct time_interpolator *time_interpolator;
 static struct time_interpolator *time_interpolator_list;
 static spinlock_t time_interpolator_lock = SPIN_LOCK_UNLOCKED;
+unsigned int ti_debug;
 
 static inline int
 is_better_time_interpolator(struct time_interpolator *new)
@@ -1443,6 +1444,7 @@
 register_time_interpolator(struct time_interpolator *ti)
 {
 	ti->nsec_per_cyc = (NSEC_PER_SEC << ti->shift) / ti->frequency;
+	printk(KERN_INFO "new time_interpolator: freq=%ld cyc=%d ns short by=%d ns.\n",ti->frequency,ti->nsec_per_cyc, (NSEC_PER_SEC << ti->shift) % ti->frequency);
 	spin_lock(&time_interpolator_lock);
 	write_seqlock_irq(&xtime_lock);
 	if (is_better_time_interpolator(ti))
