Comment 97 for bug 226279

Revision history for this message
Guido Jäkel (guido-jaekel) wrote :

Dear john and Tim

john> Looking at the commit being reverted, its broken because the fix is not complete compared to mainline.
john> [...]
john> Noting especially the changes made upstream to kernel/time/timekeeping.c

> @@ -178,6 +178,7 @@ static void change_clocksource(void)
> + new->cycle_last = 0;
> @@ -295,6 +296,7 @@ static int timekeeping_resume(struct sys_device *dev)
> + clock->cycle_last = 0;

Good or bad -- I didn't take a look on that clash before my guesses at #96. But it seems perfectly(?) match to my theory and -- if it holds -- to the proposed idea of a solution. It also matches some statements, that after waiting a longer time the system will continue to resume. This period might be the elapsed uptime until first suspend, because the TSC must at least re-incement to this uptime to "break" a delay loop somewhere.

greetings

Guido