Re: Software suspend testing in 2.6.0-test1

Pavel Machek
2003-07-18T15:12:37Z

Hi!

> > If this patch is an acceptable approach to fix the problem,
>
> Seems reasonable.
>
> > the balance_pgdat function should probably be cleaned up.
>
> Well it was rather bolted on the side of the kswapd code. But from an API
> perspective, being able to tell it how many page to free is a bit more
> flexible. Minor point.
>
> However I'm trying to remember why the code exists at all. Why doesn't
> swsusp just allocate lots of pages then free them again?

Because that either

a) does not free enough pages or

b) triggers OOM killer.

It was actually your idea, IIRC ;-).

Ahha, you seem to be addressing that in your code. Peter, perhaps you
want to test that one?
Pavel

> Something like:
>
> LIST_HEAD(list);
> int sleep_count = 0;
>
> while (sleep_count < 10) {
> page = __alloc_pages(0, GFP_ATOMIC);
> if (page) {
> list_add(&page->list, &list);
> } else {
> blk_congestion_wait(WRITE, HZ/20);
> sleep_count++;
> }
> }
> <free all the pages on `list'>

--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]