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?] - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Wed Jul 23 2003 - 22:00:34 EST