Re: Fix for timekeeping based hang on resume with 3.5-rc7 (was: Fwd: Re: Linux 3.5-rc7)
Martin Steigerwald <[email protected]> Mon, 16 Jul 2012 19:42:18 +0200
| Newsgroups | gmane.linux.swsusp.devel,gmane.linux.swsusp.general |
|---|---|
| Message-ID | <[email protected]> |
Am Montag, 16. Juli 2012 schrieb Martin Steigerwald: > Am Montag, 16. Juli 2012 schrieb Martin Steigerwald: > > Hi! > > > > I am first testing this with plain vanilla. If it works I will try > > TuxOnIce tree again. > > Fix works with plain vanilla. Now compiling TuxOnIce with this as well. Confirmed to work with TuxOnIce 3.5-rc7 as well. > Thanks, > Martin > > > Thanks, > > Martin > > > > ---------- Weitergeleitete Nachricht ---------- > > > > Subject: Re: Linux 3.5-rc7 > > Date: Montag, 16. Juli 2012 > > From: Linus Torvalds <[email protected]> > > To: Martin Steigerwald <[email protected]> > > > > On Mon, Jul 16, 2012 at 9:28 AM, Martin Steigerwald > > <[email protected]> > > > > wrote: > > > Regresses badly on resume from in-kernel hibernation. I.e. hangs > > > with > > > > some > > > > > red graphics artifacts on the tty. The same artifacts appear for a > > > short time with rc6 + some commits as well, but there then X.org is > > > available again. > > > > There's a one-liner fix for this bouncing around. > > > > Appended is a white-space damaged cut-and-paste version of the fix, > > so you'll need to either find the original patch (search the kernel > > mailing list for "Excessive delay or hang during resume from system > > suspend due to a hrtimer commit"), or just edit in the one-liner by > > hand. > > > > This should fix it (there's apparently a question on whether the > > "false" should be "true", but that's an independent detail, it's > > worth verifying in this form regardless). > > > > Linus > > > > --- > > diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c > > index 269b1fe..3447cfa 100644 > > --- a/kernel/time/timekeeping.c > > +++ b/kernel/time/timekeeping.c > > @@ -717,6 +717,7 @@ static void timekeeping_resume(void) > > > > timekeeper.clock->cycle_last = timekeeper.clock- > > > > > >read(timekeeper.clock); > > > > > timekeeper.ntp_error = 0; > > timekeeping_suspended = 0; > > > > + timekeeping_update(false); > > > > write_sequnlock_irqrestore(&timekeeper.lock, flags); > > > > touch_softlockup_watchdog(); > > > > ------------------------------------------------------- -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7