swsusp console change/userspace hang

From: Matthew Garrett
Date: Sun Aug 28 2005 - 19:28:26 EST


Hi!

I'm currently working on an entirely userspace bootsplash program. It
works quite happily, except in the case of resuming from hibernation.
The splash program is launched at the start of initramfs, and at the
end of initramfs (after the disk modules have been loaded) we attempt to
trigger resume from userspace.

The code registers a signal that's fired on VT change. If a console
change is requested when it's currently drawing, it disables drawing and
schedules an alarm to fire 0.1 seconds later in order to avoid switching
the console when part-way through a framebuffer operation.

The problem seems to be that swsusp tries to change the console and then
immediately freezes userspace. For reasons I don't entirely understand,
this freezes the machine. If I remove the pm_prepare_console call from
pm_prepare_processes, resume functions correctly.

For now I'll probably just work around this by removing the console
change from our kernels (we can do that in userspace scripting instead),
but this still seems to be a less than ideal situation - I'm guessing
that the same would happen if we were displaying the splash on suspend.
Any ideas what might be causing this, and how to rectify it?
--
Matthew Garrett | mjg59@xxxxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/