On Wednesday, 9 of February 2005 17:35, Rafael J. Wysocki wrote:
> On Tuesday, 8 of February 2005 12:04, Ingo Molnar wrote:
> > 
> > * Rafael J. Wysocki <[EMAIL PROTECTED]> wrote:
> > 
> > > The warning is printed right after the image is restored (ie somewhere
> > > around the local_irq_enable() above, but it goes before the "PM: Image
> > > restored successfully." message that is printed as soon as the return
> > > is executed).  Definitely, less than 1 s passes between the resoring
> > > of the image and the warining.
> > > 
> > > BTW, I've also tried to put touch_softlockup_watchdog() before
> > > device_power_up(), but it didn't change much.
> > 
> > this is a single-CPU box, right?
> 
> Yes.
> 
> OK, I think I've sorted it out.  The solution is to use your patch and the
> following change against swsusp.c:

Well, I was to quick with this,  sorry.
 
> --- linux-2.6.11-rc3-mm1-orig/kernel/power/swsusp.c   2005-02-08 
> 18:16:34.000000000 +0100
> +++ new/kernel/power/swsusp.c 2005-02-09 17:31:16.000000000 +0100
> @@ -870,7 +870,9 @@
>       /* Restore control flow magically appears here */
>       restore_processor_state();
>       restore_highmem();
> +     touch_softlockup_watchdog();
>       device_power_up();
> +     touch_softlockup_watchdog();
>       local_irq_enable();
>       return error;
>  }

The following patch (instead of the above) seems to work much better:

--- linux-2.6.11-rc3-mm1-orig/kernel/power/swsusp.c     2005-02-08 
18:16:34.000000000 +0100
+++ new/kernel/power/swsusp.c   2005-02-10 00:45:45.000000000 +0100
@@ -870,6 +870,7 @@
        /* Restore control flow magically appears here */
        restore_processor_state();
        restore_highmem();
+       touch_softlockup_watchdog();
        device_power_up();
        local_irq_enable();
        return error;
--- linux-2.6.11-rc3-mm1-orig/arch/x86_64/kernel/time.c 2005-02-05 
20:49:26.000000000 +0100
+++ new/arch/x86_64/kernel/time.c       2005-02-10 00:46:48.000000000 +0100
@@ -988,6 +988,7 @@
        write_sequnlock_irqrestore(&xtime_lock,flags);
        jiffies += sleep_length;
        wall_jiffies += sleep_length;
+       touch_softlockup_watchdog();
        return 0;
 }
 
--- linux-2.6.11-rc3-mm1-orig/arch/i386/kernel/time.c   2005-02-05 
20:49:26.000000000 +0100
+++ new/arch/i386/kernel/time.c 2005-02-10 00:47:03.000000000 +0100
@@ -378,6 +378,7 @@
        write_sequnlock_irqrestore(&xtime_lock, flags);
        jiffies += sleep_length;
        wall_jiffies += sleep_length;
+       touch_softlockup_watchdog();
        return 0;
 }
 

I tested it only on x86-64, so the change for i386 is a guess, albeit
educated. ;-)

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
                -- Lewis Carroll "Alice's Adventures in Wonderland"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to