2007-11-10 21:16:51

by Chris Friedhoff

[permalink] [raw]
Subject: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading

please cc me, I'm not not subscribed to LKML

Hello,

with kernel 2.6.24-rc2 STD with s2disk suspends the system to disk, but
when I start the system and the suspended systemimage is loaded, it
fails to "activate" this suspended systemimage and continues after some
time with following the normal boot sequence.

I can sucessfully STD the system with the following sequence
echo platform > /sys/power/disk
echo disk > /sys/power/state
and when I start the laptop the suspended system is sucessfully
restored.

Both behaviors are reliable reproducable.

googling for >"Freezing of tasks failed" swapper< brought
"Nigel Cunningham - PID namespaces break initrd+hibernate combination?"
http://lkml.org/lkml/2007/11/4/140

dmesg output:
<<snip>>
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 2000KiB [1 disk] into ram disk... done.
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
swsusp: Marking nosave pages: 000000000009f000 - 0000000000100000
swsusp: Basic memory bitmaps created
Clocksource tsc unstable (delta = -128791628 ns)
Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ...
Freezing of tasks failed after 20.00 seconds (1 tasks refusing to
freeze): task PC stack pid father
swapper S c1835a88 0 1 0
00000000 00000046 c0118c80 c1835a88 00000004 00000001 c011e875
00000286 c01025a6 00000000 00000000 c1835b64 00000000 ffffffff c1835a90
00000001 00000000 00000000 00000000 00000000 0000007b 00000000 c1835a90
c0118c80 Call Trace:
[<c0118c80>] default_wake_function+0x0/0x10
[<c011e875>] do_wait+0x335/0xac0
[<c01025a6>] kernel_thread+0x96/0xb0
[<c0118c80>] default_wake_function+0x0/0x10
[<c011f031>] sys_wait4+0x31/0x40
[<c04b7a23>] initrd_load+0x1b3/0x3a0
[<c04b5108>] prepare_namespace+0x98/0x1b0
[<c016090f>] sys_access+0x1f/0x30
[<c04b47c6>] kernel_init+0x166/0x260
[<c0103f4a>] ret_from_fork+0x6/0x1c
[<c04b4660>] kernel_init+0x0/0x260
[<c04b4660>] kernel_init+0x0/0x260
[<c0104b8f>] kernel_thread_helper+0x7/0x18
=======================
kthreadd S 0000038f 0 2 0
00000000 00000046 c0487790 0000038f c183ff1c 00000000 c012d81b
c012d7b0 00000000 00000000 c0104b8f 00000000 00000000 00000000 00000000
00000000 00000000
Call Trace:
[<c012d81b>] kthreadd+0x6b/0xd0
[<c012d7b0>] kthreadd+0x0/0xd0
[<c0104b8f>] kernel_thread_helper+0x7/0x18
=======================
ksoftirqd/0 S 00000000 0 3 2
00000000 00000046 fffffffc 00000000 c0120f00 00000000 c0120f7a
c012d782 c012d740 00000000 00000000 c0104b8f c183ff3c 00000000 00000000
00000000 00000000 00000000
Call Trace:
[<c0120f00>] ksoftirqd+0x0/0x80
[<c0120f7a>] ksoftirqd+0x7a/0x80
[<c012d782>] kthread+0x42/0x70
[<c012d740>] kthread+0x0/0x70
[<c0104b8f>] kernel_thread_helper+0x7/0x18

<<snip>>

--------------------
Chris Friedhoff
[email protected]


2007-11-11 18:29:17

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading

On Saturday, 10 of November 2007, Chris Friedhoff wrote:
> please cc me, I'm not not subscribed to LKML
>
> Hello,
>
> with kernel 2.6.24-rc2 STD with s2disk suspends the system to disk, but
> when I start the system and the suspended systemimage is loaded, it
> fails to "activate" this suspended systemimage and continues after some
> time with following the normal boot sequence.
>
> I can sucessfully STD the system with the following sequence
> echo platform > /sys/power/disk
> echo disk > /sys/power/state
> and when I start the laptop the suspended system is sucessfully
> restored.
>
> Both behaviors are reliable reproducable.

Thanks for the report.

> googling for >"Freezing of tasks failed" swapper< brought
> "Nigel Cunningham - PID namespaces break initrd+hibernate combination?"
> http://lkml.org/lkml/2007/11/4/140

Yes, this looks similarly.

> dmesg output:
> <<snip>>
> RAMDISK: ext2 filesystem found at block 0
> RAMDISK: Loading 2000KiB [1 disk] into ram disk... done.
> EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
> VFS: Mounted root (ext2 filesystem).
> swsusp: Marking nosave pages: 000000000009f000 - 0000000000100000
> swsusp: Basic memory bitmaps created
> Clocksource tsc unstable (delta = -128791628 ns)
> Syncing filesystems ... done.
> Freezing user space processes ... (elapsed 0.00 seconds) done.
> Freezing remaining freezable tasks ...
> Freezing of tasks failed after 20.00 seconds (1 tasks refusing to
> freeze): task PC stack pid father
> swapper S c1835a88 0 1 0
> 00000000 00000046 c0118c80 c1835a88 00000004 00000001 c011e875
> 00000286 c01025a6 00000000 00000000 c1835b64 00000000 ffffffff c1835a90
> 00000001 00000000 00000000 00000000 00000000 0000007b 00000000 c1835a90
> c0118c80 Call Trace:
> [<c0118c80>] default_wake_function+0x0/0x10
> [<c011e875>] do_wait+0x335/0xac0
> [<c01025a6>] kernel_thread+0x96/0xb0
> [<c0118c80>] default_wake_function+0x0/0x10
> [<c011f031>] sys_wait4+0x31/0x40
> [<c04b7a23>] initrd_load+0x1b3/0x3a0
> [<c04b5108>] prepare_namespace+0x98/0x1b0
> [<c016090f>] sys_access+0x1f/0x30
> [<c04b47c6>] kernel_init+0x166/0x260
> [<c0103f4a>] ret_from_fork+0x6/0x1c
> [<c04b4660>] kernel_init+0x0/0x260
> [<c04b4660>] kernel_init+0x0/0x260
> [<c0104b8f>] kernel_thread_helper+0x7/0x18
> =======================
> kthreadd S 0000038f 0 2 0
> 00000000 00000046 c0487790 0000038f c183ff1c 00000000 c012d81b
> c012d7b0 00000000 00000000 c0104b8f 00000000 00000000 00000000 00000000
> 00000000 00000000
> Call Trace:
> [<c012d81b>] kthreadd+0x6b/0xd0
> [<c012d7b0>] kthreadd+0x0/0xd0
> [<c0104b8f>] kernel_thread_helper+0x7/0x18
> =======================
> ksoftirqd/0 S 00000000 0 3 2
> 00000000 00000046 fffffffc 00000000 c0120f00 00000000 c0120f7a
> c012d782 c012d740 00000000 00000000 c0104b8f c183ff3c 00000000 00000000
> 00000000 00000000 00000000
> Call Trace:
> [<c0120f00>] ksoftirqd+0x0/0x80
> [<c0120f7a>] ksoftirqd+0x7a/0x80
> [<c012d782>] kthread+0x42/0x70
> [<c012d740>] kthread+0x0/0x70
> [<c0104b8f>] kernel_thread_helper+0x7/0x18
>
> <<snip>>

Can you please attach your kernel configuration file to the bugzilla entry
at http://bugzilla.kernel.org/show_bug.cgi?id=9345 ?

Thanks,
Rafael

2007-11-11 22:10:04

by Chris Friedhoff

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading

kernel config attached to comment#2 for bugreport 9345
s2disk comes from suspend-0.7 package

Thanks,
Chris

On Sun, 11 Nov 2007 19:45:06 +0100
"Rafael J. Wysocki" <[email protected]> wrote:

> On Saturday, 10 of November 2007, Chris Friedhoff wrote:
> > please cc me, I'm not not subscribed to LKML
> >
> > Hello,
> >
> > with kernel 2.6.24-rc2 STD with s2disk suspends the system to disk, but
> > when I start the system and the suspended systemimage is loaded, it
> > fails to "activate" this suspended systemimage and continues after some
> > time with following the normal boot sequence.
> >
> > I can sucessfully STD the system with the following sequence
> > echo platform > /sys/power/disk
> > echo disk > /sys/power/state
> > and when I start the laptop the suspended system is sucessfully
> > restored.
> >
> > Both behaviors are reliable reproducable.
>
> Thanks for the report.
>
> > googling for >"Freezing of tasks failed" swapper< brought
> > "Nigel Cunningham - PID namespaces break initrd+hibernate combination?"
> > http://lkml.org/lkml/2007/11/4/140
>
> Yes, this looks similarly.
>
> > dmesg output:
> > <<snip>>
> > RAMDISK: ext2 filesystem found at block 0
> > RAMDISK: Loading 2000KiB [1 disk] into ram disk... done.
> > EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
> > VFS: Mounted root (ext2 filesystem).
> > swsusp: Marking nosave pages: 000000000009f000 - 0000000000100000
> > swsusp: Basic memory bitmaps created
> > Clocksource tsc unstable (delta = -128791628 ns)
> > Syncing filesystems ... done.
> > Freezing user space processes ... (elapsed 0.00 seconds) done.
> > Freezing remaining freezable tasks ...
> > Freezing of tasks failed after 20.00 seconds (1 tasks refusing to
> > freeze): task PC stack pid father
> > swapper S c1835a88 0 1 0
> > 00000000 00000046 c0118c80 c1835a88 00000004 00000001 c011e875
> > 00000286 c01025a6 00000000 00000000 c1835b64 00000000 ffffffff c1835a90
> > 00000001 00000000 00000000 00000000 00000000 0000007b 00000000 c1835a90
> > c0118c80 Call Trace:
> > [<c0118c80>] default_wake_function+0x0/0x10
> > [<c011e875>] do_wait+0x335/0xac0
> > [<c01025a6>] kernel_thread+0x96/0xb0
> > [<c0118c80>] default_wake_function+0x0/0x10
> > [<c011f031>] sys_wait4+0x31/0x40
> > [<c04b7a23>] initrd_load+0x1b3/0x3a0
> > [<c04b5108>] prepare_namespace+0x98/0x1b0
> > [<c016090f>] sys_access+0x1f/0x30
> > [<c04b47c6>] kernel_init+0x166/0x260
> > [<c0103f4a>] ret_from_fork+0x6/0x1c
> > [<c04b4660>] kernel_init+0x0/0x260
> > [<c04b4660>] kernel_init+0x0/0x260
> > [<c0104b8f>] kernel_thread_helper+0x7/0x18
> > =======================
> > kthreadd S 0000038f 0 2 0
> > 00000000 00000046 c0487790 0000038f c183ff1c 00000000 c012d81b
> > c012d7b0 00000000 00000000 c0104b8f 00000000 00000000 00000000 00000000
> > 00000000 00000000
> > Call Trace:
> > [<c012d81b>] kthreadd+0x6b/0xd0
> > [<c012d7b0>] kthreadd+0x0/0xd0
> > [<c0104b8f>] kernel_thread_helper+0x7/0x18
> > =======================
> > ksoftirqd/0 S 00000000 0 3 2
> > 00000000 00000046 fffffffc 00000000 c0120f00 00000000 c0120f7a
> > c012d782 c012d740 00000000 00000000 c0104b8f c183ff3c 00000000 00000000
> > 00000000 00000000 00000000
> > Call Trace:
> > [<c0120f00>] ksoftirqd+0x0/0x80
> > [<c0120f7a>] ksoftirqd+0x7a/0x80
> > [<c012d782>] kthread+0x42/0x70
> > [<c012d740>] kthread+0x0/0x70
> > [<c0104b8f>] kernel_thread_helper+0x7/0x18
> >
> > <<snip>>
>
> Can you please attach your kernel configuration file to the bugzilla entry
> at http://bugzilla.kernel.org/show_bug.cgi?id=9345 ?
>
> Thanks,
> Rafael


--------------------
Chris Friedhoff
[email protected]

2007-11-19 13:43:22

by Chris Friedhoff

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3

Hallo Rafael,

just to let you know: with 2.6.24-rc3 I have the same problem.

Chris


On Sun, 11 Nov 2007 19:45:06 +0100
"Rafael J. Wysocki" <[email protected]> wrote:

> On Saturday, 10 of November 2007, Chris Friedhoff wrote:
> > please cc me, I'm not not subscribed to LKML
> >
> > Hello,
> >
> > with kernel 2.6.24-rc2 STD with s2disk suspends the system to disk, but
> > when I start the system and the suspended systemimage is loaded, it
> > fails to "activate" this suspended systemimage and continues after some
> > time with following the normal boot sequence.
> >
> > I can sucessfully STD the system with the following sequence
> > echo platform > /sys/power/disk
> > echo disk > /sys/power/state
> > and when I start the laptop the suspended system is sucessfully
> > restored.
> >
> > Both behaviors are reliable reproducable.
>
> Thanks for the report.
>
> > googling for >"Freezing of tasks failed" swapper< brought
> > "Nigel Cunningham - PID namespaces break initrd+hibernate combination?"
> > http://lkml.org/lkml/2007/11/4/140
>
> Yes, this looks similarly.
>
> > dmesg output:
> > <<snip>>
> > RAMDISK: ext2 filesystem found at block 0
> > RAMDISK: Loading 2000KiB [1 disk] into ram disk... done.
> > EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
> > VFS: Mounted root (ext2 filesystem).
> > swsusp: Marking nosave pages: 000000000009f000 - 0000000000100000
> > swsusp: Basic memory bitmaps created
> > Clocksource tsc unstable (delta = -128791628 ns)
> > Syncing filesystems ... done.
> > Freezing user space processes ... (elapsed 0.00 seconds) done.
> > Freezing remaining freezable tasks ...
> > Freezing of tasks failed after 20.00 seconds (1 tasks refusing to
> > freeze): task PC stack pid father
> > swapper S c1835a88 0 1 0
> > 00000000 00000046 c0118c80 c1835a88 00000004 00000001 c011e875
> > 00000286 c01025a6 00000000 00000000 c1835b64 00000000 ffffffff c1835a90
> > 00000001 00000000 00000000 00000000 00000000 0000007b 00000000 c1835a90
> > c0118c80 Call Trace:
> > [<c0118c80>] default_wake_function+0x0/0x10
> > [<c011e875>] do_wait+0x335/0xac0
> > [<c01025a6>] kernel_thread+0x96/0xb0
> > [<c0118c80>] default_wake_function+0x0/0x10
> > [<c011f031>] sys_wait4+0x31/0x40
> > [<c04b7a23>] initrd_load+0x1b3/0x3a0
> > [<c04b5108>] prepare_namespace+0x98/0x1b0
> > [<c016090f>] sys_access+0x1f/0x30
> > [<c04b47c6>] kernel_init+0x166/0x260
> > [<c0103f4a>] ret_from_fork+0x6/0x1c
> > [<c04b4660>] kernel_init+0x0/0x260
> > [<c04b4660>] kernel_init+0x0/0x260
> > [<c0104b8f>] kernel_thread_helper+0x7/0x18
> > =======================
> > kthreadd S 0000038f 0 2 0
> > 00000000 00000046 c0487790 0000038f c183ff1c 00000000 c012d81b
> > c012d7b0 00000000 00000000 c0104b8f 00000000 00000000 00000000 00000000
> > 00000000 00000000
> > Call Trace:
> > [<c012d81b>] kthreadd+0x6b/0xd0
> > [<c012d7b0>] kthreadd+0x0/0xd0
> > [<c0104b8f>] kernel_thread_helper+0x7/0x18
> > =======================
> > ksoftirqd/0 S 00000000 0 3 2
> > 00000000 00000046 fffffffc 00000000 c0120f00 00000000 c0120f7a
> > c012d782 c012d740 00000000 00000000 c0104b8f c183ff3c 00000000 00000000
> > 00000000 00000000 00000000
> > Call Trace:
> > [<c0120f00>] ksoftirqd+0x0/0x80
> > [<c0120f7a>] ksoftirqd+0x7a/0x80
> > [<c012d782>] kthread+0x42/0x70
> > [<c012d740>] kthread+0x0/0x70
> > [<c0104b8f>] kernel_thread_helper+0x7/0x18
> >
> > <<snip>>
>
> Can you please attach your kernel configuration file to the bugzilla entry
> at http://bugzilla.kernel.org/show_bug.cgi?id=9345 ?
>
> Thanks,
> Rafael


--------------------
Chris Friedhoff
[email protected]

2007-11-19 18:41:53

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3

On Monday, 19 of November 2007, Chris Friedhoff wrote:
> Hallo Rafael,
>
> just to let you know: with 2.6.24-rc3 I have the same problem.

Thanks.

> On Sun, 11 Nov 2007 19:45:06 +0100
> "Rafael J. Wysocki" <[email protected]> wrote:
>
> > On Saturday, 10 of November 2007, Chris Friedhoff wrote:
> > > please cc me, I'm not not subscribed to LKML
> > >
> > > Hello,
> > >
> > > with kernel 2.6.24-rc2 STD with s2disk suspends the system to disk, but
> > > when I start the system and the suspended systemimage is loaded, it
> > > fails to "activate" this suspended systemimage and continues after some
> > > time with following the normal boot sequence.

Please add the dmesg output taken right after that as an attachment to the
bugzilla entry at http://bugzilla.kernel.org/show_bug.cgi?id=9345

Thanks,
Rafael

2007-11-19 19:05:59

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3

On Monday, 19 of November 2007, Rafael J. Wysocki wrote:
> On Monday, 19 of November 2007, Chris Friedhoff wrote:
> > Hallo Rafael,
> >
> > just to let you know: with 2.6.24-rc3 I have the same problem.
>
> Thanks.
>
> > On Sun, 11 Nov 2007 19:45:06 +0100
> > "Rafael J. Wysocki" <[email protected]> wrote:
> >
> > > On Saturday, 10 of November 2007, Chris Friedhoff wrote:
> > > > please cc me, I'm not not subscribed to LKML
> > > >
> > > > Hello,
> > > >
> > > > with kernel 2.6.24-rc2 STD with s2disk suspends the system to disk, but
> > > > when I start the system and the suspended systemimage is loaded, it
> > > > fails to "activate" this suspended systemimage and continues after some
> > > > time with following the normal boot sequence.
>
> Please add the dmesg output taken right after that

I mean, just when the system boots after that.

> as an attachment to the bugzilla entry at
> http://bugzilla.kernel.org/show_bug.cgi?id=9345

Thanks,
Rafael

2007-11-19 22:44:35

by Chris Friedhoff

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3

dmesg output is added.

increasing CONFIG_BLK_DEV_RAM_SIZE from 7777 to 131072 hasn't changed
the non-functioning of 2.6.24-rc3

s2disk works with 2.6.23.8 ; I tested 4 cycles in a row, 2 from console
and 2 from within X


Chris


On Mon, 19 Nov 2007 19:58:36 +0100
"Rafael J. Wysocki" <[email protected]> wrote:

> On Monday, 19 of November 2007, Chris Friedhoff wrote:
> > Hallo Rafael,
> >
> > just to let you know: with 2.6.24-rc3 I have the same problem.
>
> Thanks.
>
> > On Sun, 11 Nov 2007 19:45:06 +0100
> > "Rafael J. Wysocki" <[email protected]> wrote:
> >
> > > On Saturday, 10 of November 2007, Chris Friedhoff wrote:
> > > > please cc me, I'm not not subscribed to LKML
> > > >
> > > > Hello,
> > > >
> > > > with kernel 2.6.24-rc2 STD with s2disk suspends the system to disk, but
> > > > when I start the system and the suspended systemimage is loaded, it
> > > > fails to "activate" this suspended systemimage and continues after some
> > > > time with following the normal boot sequence.
>
> Please add the dmesg output taken right after that as an attachment to the
> bugzilla entry at http://bugzilla.kernel.org/show_bug.cgi?id=9345
>
> Thanks,
> Rafael


--------------------
Chris Friedhoff
[email protected]

2007-11-19 23:41:18

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3

On Monday, 19 of November 2007, Chris Friedhoff wrote:
> dmesg output is added.
>
> increasing CONFIG_BLK_DEV_RAM_SIZE from 7777 to 131072 hasn't changed
> the non-functioning of 2.6.24-rc3
>
> s2disk works with 2.6.23.8 ; I tested 4 cycles in a row, 2 from console
> and 2 from within X

I've attached a patch to the bugzilla entry, please test it.

Thanks,
Rafael

2007-11-20 05:55:50

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3


* Rafael J. Wysocki <[email protected]> wrote:

> > increasing CONFIG_BLK_DEV_RAM_SIZE from 7777 to 131072 hasn't
> > changed the non-functioning of 2.6.24-rc3
> >
> > s2disk works with 2.6.23.8 ; I tested 4 cycles in a row, 2 from
> > console and 2 from within X
>
> I've attached a patch to the bugzilla entry, please test it.
[...]
> --- linux-2.6.orig/init/do_mounts_initrd.c
> +++ linux-2.6/init/do_mounts_initrd.c
> @@ -55,6 +55,8 @@ static void __init handle_initrd(void)
> sys_mount(".", "/", NULL, MS_MOVE, NULL);
> sys_chroot(".");
>
> + current->flags |= PF_NOFREEZE;
> +
> pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
> if (pid > 0)
> while (pid != sys_wait4(-1, NULL, 0, NULL)) {

this is not the first time (and not the last time) that a missing
PF_NOFREEZE is causing hard to debug suspend problems. I think we should
be more robust about this and at minimum include some debug mechanism
that determines when a PF_NOFREEZE annotation is missing. (or at least
detect the condition somehow and report it) This bug took 10 days to
track down.

Ingo

2007-11-20 10:41:07

by Chris Friedhoff

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3

the patch on top of 2.6.24-rc3 fixed the problem.
now I can succesfully s2disk.
I tested it 5 times in a row, 2 from the console and 3 from within X

thanks for fixing it,
Chris


On Tue, 20 Nov 2007 00:58:29 +0100
"Rafael J. Wysocki" <[email protected]> wrote:

> On Monday, 19 of November 2007, Chris Friedhoff wrote:
> > dmesg output is added.
> >
> > increasing CONFIG_BLK_DEV_RAM_SIZE from 7777 to 131072 hasn't changed
> > the non-functioning of 2.6.24-rc3
> >
> > s2disk works with 2.6.23.8 ; I tested 4 cycles in a row, 2 from console
> > and 2 from within X
>
> I've attached a patch to the bugzilla entry, please test it.
>
> Thanks,
> Rafael


--------------------
Chris Friedhoff
[email protected]

2007-11-20 21:55:29

by Chris Friedhoff

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3

The patch
http://bugzilla.kernel.org/attachment.cgi?id=13652&action=view from
Comment #16 of http://bugzilla.kernel.org/show_bug.cgi?id=9345
also works for me and enables successful s2disk cycles.

Tested with 6 cycles, 3 from console and than 3 from within X.

Thanks,
Chris


On Tue, 20 Nov 2007 00:58:29 +0100
"Rafael J. Wysocki" <[email protected]> wrote:

> On Monday, 19 of November 2007, Chris Friedhoff wrote:
> > dmesg output is added.
> >
> > increasing CONFIG_BLK_DEV_RAM_SIZE from 7777 to 131072 hasn't changed
> > the non-functioning of 2.6.24-rc3
> >
> > s2disk works with 2.6.23.8 ; I tested 4 cycles in a row, 2 from console
> > and 2 from within X
>
> I've attached a patch to the bugzilla entry, please test it.
>
> Thanks,
> Rafael


--------------------
Chris Friedhoff
[email protected]

2007-11-21 00:29:15

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc2 STD with s2disk fails to activate suspended system after loading - now 2.6.24-rc3

On Tuesday, 20 of November 2007, Ingo Molnar wrote:
>
> * Rafael J. Wysocki <[email protected]> wrote:
>
> > > increasing CONFIG_BLK_DEV_RAM_SIZE from 7777 to 131072 hasn't
> > > changed the non-functioning of 2.6.24-rc3
> > >
> > > s2disk works with 2.6.23.8 ; I tested 4 cycles in a row, 2 from
> > > console and 2 from within X
> >
> > I've attached a patch to the bugzilla entry, please test it.
> [...]
> > --- linux-2.6.orig/init/do_mounts_initrd.c
> > +++ linux-2.6/init/do_mounts_initrd.c
> > @@ -55,6 +55,8 @@ static void __init handle_initrd(void)
> > sys_mount(".", "/", NULL, MS_MOVE, NULL);
> > sys_chroot(".");
> >
> > + current->flags |= PF_NOFREEZE;
> > +
> > pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
> > if (pid > 0)
> > while (pid != sys_wait4(-1, NULL, 0, NULL)) {
>
> this is not the first time (and not the last time) that a missing
> PF_NOFREEZE is causing hard to debug suspend problems. I think we should
> be more robust about this and at minimum include some debug mechanism
> that determines when a PF_NOFREEZE annotation is missing. (or at least
> detect the condition somehow and report it) This bug took 10 days to
> track down.

In fact all of the needed pieces are in there, I only needed the right dmesg
output to figure out what's wrong.

Also, I don't think we should use PF_NOFREEZE in there, as this is an
exceptional case. I'd prefer to use the appended fix, which also has been
tested.

Thanks,
Rafael


---
init/do_mounts_initrd.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

Index: linux-2.6/init/do_mounts_initrd.c
===================================================================
--- linux-2.6.orig/init/do_mounts_initrd.c
+++ linux-2.6/init/do_mounts_initrd.c
@@ -55,12 +55,18 @@ static void __init handle_initrd(void)
sys_mount(".", "/", NULL, MS_MOVE, NULL);
sys_chroot(".");

+ /*
+ * In case that a resume from disk is carreid out by linuxrc or one of
+ * its children, we need to tell the freezer not to wait for us
+ */
+ current->flags |= PF_FREEZER_SKIP;
+
pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
if (pid > 0)
- while (pid != sys_wait4(-1, NULL, 0, NULL)) {
- try_to_freeze();
+ while (pid != sys_wait4(-1, NULL, 0, NULL))
yield();
- }
+
+ current->flags &= ~PF_FREEZER_SKIP;

/* move initrd to rootfs' /old */
sys_fchdir(old_fd);