Re: [BUG] APM resume breakage from 2.6.18-rc1 clocksource changes

From: Valdis . Kletnieks
Date: Sun Jul 09 2006 - 17:40:20 EST


On Sun, 09 Jul 2006 22:58:31 +0200, Mikael Pettersson said:

> I've traced the cause of this problem to the i386 time-keeping
> changes in kernel 2.6.17-git11. What happens is that:
> - The kernel autoselects TSC as my clocksource, which is
> reasonable since it's a PentiumII. 2.6.17 also chose the TSC.
> - Immediately after APM resumes (arch/i386/kernel/apm.c line
> 1231 in 2.6.18-rc1) there is an interrupt from the PIT,
> which takes us to kernel/timer.c:update_wall_time().
> - update_wall_time() does a clocksource_read() and computes
> the offset from the previous read. However, the TSC was
> reset by HW or BIOS during the APM suspend/resume cycle and
> is now smaller than it was at the prevous read. On my machine,
> the offset is 0xffffffd598e0a566 at this point, which appears
> to throw update_wall_time() into a very very long loop.

Does applying this patch make it work?

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.18-rc1/2.6.18-rc1-mm1/broken-out/adjust-clock-for-lost-ticks.patch

Or is this a different breakage?

Attachment: pgp00000.pgp
Description: PGP signature