Hibernation?

lbios_kk at redfenix.com lbios_kk at redfenix.com
Fri May 14 10:55:01 CEST 2004


I had looked into this all before, but lost the link to the project.  I just found it again:

http://swsusp.sourceforge.net/

The "Software Suspend" project, as they call it, handles exactly what we're talking about, except that it occurs in the resident OS.  This means that they save only process memory and not kernel memory states.  They also recommend for some peripheral drivers, that one install them as modules and unload them before saving state.  They do, however, compress the memory image and have the option of saving it in swap space.

So, in answer to your question, it may be possible to unload drivers before saving state, then reload them upon restore.  However, this could present some difficulty if the module is in use by a process (e.g. vga driver w/ xwindows) or in use by other modules.  This is something that would need to be addressed.  If you have to shutdown X just to save state, and start X again after restoring state, this wouldn't be nearly as useful.

I guess there are a few options:  Try it without re-initializing (for many, this will work, but not all.)  Unload/load modules (good for non-critical modules)  Figure out way to read/write state to peripheral (messy, many proprietary implementations)

One more question.  To do this effectively we'll need a hook into running a BIOS process from inside the OS (trigger to save state and shutdown.)  How difficult is this to do?

--Kevin

P.S. I've just subscribed to the swsusp-devel list.  I'll be asking questions in there too.



More information about the coreboot mailing list