From: john stultz Good call! I was mis-adding in conversion to nanoseconds. The patch below should fix it (Andrew, feel free to ignore this, I'll sync up all the acpi-pm changes with you later). Although I'm finding that the sched_clock->monotonic_clock patch doesn't look like a win. With that patch sched_clock takes ~400-700 cycles using clock=pmtmr. With your "fix-sched_clock.diff" patch its less then 40 cycles. While better accuracy is nice, I can't imagine the 10-20x cost of sched_clock is worth it. So I think your fix is the best solution. 25-akpm/arch/i386/kernel/timers/timer_pm.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/timers/timer_pm.c~timer_pm-fix-fix-fix arch/i386/kernel/timers/timer_pm.c --- 25/arch/i386/kernel/timers/timer_pm.c~timer_pm-fix-fix-fix Tue Nov 18 15:28:41 2003 +++ 25-akpm/arch/i386/kernel/timers/timer_pm.c Tue Nov 18 15:28:41 2003 @@ -149,8 +149,8 @@ static unsigned long long monotonic_cloc /* convert to nanoseconds */ - ret = base + ((this_offset - last_offset) & ACPI_PM_MASK); - ret = cyc2us(ret)*1000; + ret = ((this_offset - last_offset) & ACPI_PM_MASK); + ret = base + (cyc2us(ret)*1000); return ret; } _