On Sat, Oct 07, 2006 at 08:16:56PM +0200, Rafael J. Wysocki wrote:

> > usually it segfaults somewhere around here. Or more exactly, since i
> > tried reordering the stuff, it segfaults in the first glibc function
> > used. Not always, but every second or third suspend.
> 
> Hm, actually I'd prefer if it segfaulted every time. ;-)

It only segfaults when the machine is low on memory.
I tried it on a 256mb tecra8200:
t8200:~ # /home/tux/cvs/suspend-orig/s2ram
Switching from vt7 to vt1
frozen: 1
calling suspend_to_ram ioctl
Segmentation fault
t8200:~ # free
             total       used       free     shared    buffers     cached
Mem:        255600     250088       5512          0      51264      77540
-/+ buffers/cache:     121284     134316
Swap:       771080     130404     640676
t8200:~ #

once i stop some of the more memory-consuming tasks (beagled, some of the
KDE stuff), it works.
It does not matter if i use the old vt.c code (that's what i used above) or
the new console.c.

And now the "good" news: i found a "workaround":

int s2ram_do(int frozen, int snapshot_fd)
{
        int ret = 0;
        if (frozen) {
                printf("calling suspend_to_ram ioctl\n");
                ret = suspend_to_ram(snapshot_fd);
                printf("after suspend_to_ram ioctl\n");
                goto out;
        }

------
the additional printf() after the suspend_to_ram() seems to "fix" it. At
least it did not crash on me for ~30 suspend cycles now.
However, i'd rather like to understand what the real problem is instead
of engaging in such cargo cult programming ;-)


> Anyway, have you tried to replace suspend_to_ram(snapshot_fd) in s2ram_do
> with a noop and see what happens?

Then it does not segfault.
-- 
Stefan Seyfried
QA / R&D Team Mobile Devices        |              "Any ideas, John?"
SUSE LINUX Products GmbH, Nürnberg  | "Well, surrounding them's out." 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Suspend-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/suspend-devel

Reply via email to