Re: Software suspend testing in 2.6.0-test1

Andrew Morton
2003-07-18T10:11:40Z

Peter Osterlund <petero2@telia.com> wrote:
>
> 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?

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'>