Index: linux-2.6.9-rc3-bk7/kernel/sched.c
===================================================================
--- linux-2.6.9-rc3-bk7.orig/kernel/sched.c	2004-10-08 20:25:52.803326511 +1000
+++ linux-2.6.9-rc3-bk7/kernel/sched.c	2004-10-08 20:26:44.139050937 +1000
@@ -71,6 +71,7 @@
  * Some helpers for converting nanosecond timing to jiffy resolution
  */
 #define NS_TO_JIFFIES(TIME)	((TIME) / (1000000000 / HZ))
+#define NSJIFFY			(1000000000 / HZ)	/* One jiffy in ns */
 
 int sched_compute = 0;
 /* 
@@ -2188,6 +2189,7 @@ void scheduler_tick(int user_ticks, int 
 	struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat;
 	runqueue_t *rq = this_rq();
 	task_t *p = current;
+	unsigned long debit;
 
 	rq->timestamp_last_tick = sched_clock();
 
@@ -2231,6 +2233,12 @@ void scheduler_tick(int user_ticks, int 
 		goto out;
 
 	spin_lock(&rq->lock);
+	debit = ns_diff(rq->timestamp_last_tick, p->timestamp);
+	if (debit < NSJIFFY) {
+		p->totalrun += debit;
+		goto out_unlock;
+	}
+
 	/*
 	 * Tasks lose burst each time they use up a full slice().
 	 */
