Date: Fri, 4 Apr 2008 09:19:05 -0400 From: John Baldwin <jhb@freebsd.org> To: Andrew Pilloud <lists.ampmouse@ampmouse.net> Cc: freebsd-acpi@freebsd.org Subject: Re: OS Suspend to disk (Google Summer of Code) Message-ID: <200804040919.05824.jhb@freebsd.org> In-Reply-To: <47F56B93.2080808@ampmouse.net> References: <47F491D1.6020103@ampmouse.net> <200804031405.42440.jhb@freebsd.org> <47F56B93.2080808@ampmouse.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 03 April 2008 07:43:15 pm Andrew Pilloud wrote: > John Baldwin wrote: > > Hmm, the idea of reading the saved image in during early boot is a bit > > different. One thing to note is that / does have to be mounted for rc > > scripts to run (so at least one filesystem will already be mounted). One > > thing that might make it easier though, is to just require a separate > > disk partition (like swap, but a dedicated one, not reusing swap) to dump > > the RAM image into. Later on you could extend it to use a pre-allocated > > file on a filesystem perhaps, but using a dedicated partition for now > > might reduce the work needed. I think if you can dump all of RAM to a > > suspend partition then it actually is not too hard to make the loader > > just read that into RAM with some sort of header to give an entry point > > (and to validate it). > > > > Some things that would be really nice for S4 suspend though would be to > > have the system try to quiesce things more during suspend than it does > > now. For example, it would be nice if suspend would flush pending writes > > to disk and possibly mark filesystems as clean before actually going to > > sleep to minimize data loss (this would be useful even for S1 or S3 if > > the battery runs out while suspended). > > Thanks for the advice. I don't think / being mounted read only will be a > problem. As long as the disk is not modified everything should be fine. > A dedicated partition would make things easier, especially with resuming > in the boot loader. I think making things easier is good for a first pass to make it more feasible of getting something working during the summer. > There seem to be different advantages to both ways of resuming the > system. Microsoft products resume in the boot loader, and Linux in a > script just after the kernel loads. This seems like something that could > turn into a bikeshed debate rather quickly. I think the best way to > determine which is better is to implement them both. Both is probably fine. I would aim to make things as simple as possible at first though. > As for the file systems, I don't really know what more you can do to > quiesce the system then is already being done. When you suspend, the > script rc.suspend is suppose to run. That script runs sync, which should > take care of flushing pending disk writes. I don't know if marking a > file system clean is wise or even possible without completely > un-mounting it. It's quite possible. Filesystems just have a dirty bit usually in a superblock-type thing that you can clear if all pending writes are flushed. Something like this would need to be done via a kernel event I think though rather than just calling sync from userland. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804040919.05824.jhb>