Re: swsusp in 2.5.53 BUG on kernel/suspend.c line 718

Pavel Machek (pavel@suse.cz)
Fri, 27 Dec 2002 16:09:30 +0100


You need one-liner to fix this, search mailing lists.

Pavel

> Hi!
>
> I wanted to try software suspend again in Linux as 2.5 is doing almost
> everything pretty well for me already.
>
> I boot my uniprocessor Pentium III laptop with:
>
> kernel (hd0,0)/boot/vmlinuz-2.5.53 root=/dev/hda1 resume=/dev/hda2
>
> # swapon -s
> Filename Type Size Used Priority
> /dev/hda2 partition 489972 0 -1
>
> $ cat /proc/meminfo
> MemTotal: 191240 kB
>
> When I suspend, things proceed swimmingly, I see a lot of dots printed and
> processes entering the refrigerator, until line 718 is hit in
> kernel/suspend.c:
>
> if (nr_copy_pages != count_and_copy_data_pages(pagedir_nosave)) /* copy */
> BUG();
>
> When I aded some printks, it turns out that count_and_copy_data pages
> returns 5440 (decimal) and that nr_copy_pages is 5458, 18 more. Before this
> function is called, the address c034c000 was printed twice prefixed with
> 'nosave', once during each call of count_and_copy_data_pages it appears.
>
> So it appears some pages were freed in the critical section!
>
> Another interesting note is that pdflush reported 'Bogus wakeup' twice
> during the refrigeration phase. I also see two pdflushes running.
>
> If I remove the BUG();, on resume it crashes on an unhandled NULL pointer,
> the EIP is in a function aptly named do_magic() at +0x9e.
>
> Compiler is gcc 3.2.1. Anything I can do to help, just let me know!
>
> Regards,
>
> bert
>

-- 
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/