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
-- http://www.PowerDNS.com Open source, database driven DNS Software http://lartc.org Linux Advanced Routing & Traffic Control HOWTO http://netherlabs.nl Consulting - 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/
This archive was generated by hypermail 2b29 : Tue Dec 31 2002 - 22:00:10 EST