Re: [Bug #13058] First hibernation attempt fails

Rafael J. Wysocki
2009-04-20T19:49:32Z

On Monday 20 April 2009, Andrew Morton wrote:
> On Tue, 7 Apr 2009 10:06:32 +0200
> Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org> wrote:
>
> > > And the thing is, that "swsusp_shrink_memory()" is just full of
> > > heuristics. There's no hard numbers there. It doesn't seem to wait for
> > > writeout, it just does the equivalent of "shrink_list()" and
> > > "shrink_slab()", but it seems to have been basically cribbed half-way
> > > from the regular "try to free memory", without really doing it all.
> >
> > akpm designed shrink_memory(). Long time ago it was just while (1)
> > kmalloc() loop. It should be waiting. Andrew?
>
> I always wanted the thing to just allocate all the memory which it
> needed and then to either return it all to the caller or free it all
> again for the caller to reallocate (preferably the former).
>
> But for some reason which I don't recall (Pavel provided it, iirc) that
> doesn't work. So the current (and subsequently tweaked) scheme was put
> in there instead. It turned out to be surprisingly difficult and ugly
> to graft it in top of the existing page reclaim code, and various
> changes were subsequently made to make it sort-of-work.
>
> Remind me: why can't we just allocate N pages at suspend-time?

Well, IMO it may be worth trying anyway.

Thanks,
Rafael