This patch fixes an ancient timer bug.
If one uses CPU counter as the system timer, it looses time
over the time.
Basically, timer_interrupt() does the following when it serves
an cpu counter interrupt (only relavent part shown);
0) interrupt happens
1) read cpu counter;
2) add it with cycles_per_jiffy, and set the value to compare
The problem is that cpu counter could increase between 0) and 1),
say by delta units. Then the next timer interrupt is set to
t0 + delta + cycles_per_unit, instead of t0 + cycles_per_unit,
(where t0 is the current timer interrupt time)
Similar bug also exists in old-time.c, but anybody really cares? :)
Especially it has been there for quite a while ....
Description: Text document