Re: [Bug #13058] First hibernation attempt fails

From: Andrew Morton
Date: Mon Apr 20 2009 - 15:38:55 EST


On Tue, 7 Apr 2009 10:06:32 +0200
Pavel Machek <pavel@xxxxxx> 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?
--
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/