Re: Which is simpler? (Was Re: [Suspend2-devel] Re: [ 00/10] [Suspend2] Modules support.)

From: Nigel Cunningham
Date: Thu Feb 23 2006 - 18:28:49 EST


Hi.

On Friday 24 February 2006 09:04, Pavel Machek wrote:
> > > [Because pagecache is freeable, anyway, so it will be freed. Now... I
> > > have seen some problems where free_some_memory did not free enough,
> > > and schedule()/retry helped a bit... that probably should be fixed.]
> >
> > It seems I need to understand correctly what the difference between what
> > we do and what Nigel does is. I thought the Nigel's approach was to save
> > some cache pages to disk first and use the memory occupied by them to
> > store the image data. If so, is the page cache involved in that or
> > something else?
>
> I believe Nigel only saves pages that could have been freed anyway
> during phase1. Nigel, correct me here... suspend2 should work on same
> class of machines swsusp can, but will be able to save caches on
> machines where swsusp can not save any.

I'm not used to thinking in these terms :). It would be normally be right,
except that there will be some LRU pages that will never be freed. These
would allow suspend2 to work in some (not many) cases where swsusp can't.
It's been ages since I did the intensive testing on the image preparation
code, but I think that if we free as much memory as we can, we will always
still have at least a few hundred LRU pages left. That's not much, but on
machines with less ram, it might make the difference in a greater percentage
of cases (compared to machines with more ram)?

If there were other pages that could be safely included in this set, we could
perhaps make more cases where suspend2 could work but swsusp couldn't. LRU
was low hanging fruit, and I didn't bother looking beyond it.

Nigel

Attachment: pgp00000.pgp
Description: PGP signature