Rafael J. Wysocki 6715045ddc PM / Hibernate: Avoid hitting OOM during preallocation of memory
There is a problem in hibernate_preallocate_memory() that it calls
preallocate_image_memory() with an argument that may be greater than
the total number of available non-highmem memory pages.  If that's
the case, the OOM condition is guaranteed to trigger, which in turn
can cause significant slowdown to occur during hibernation.

To avoid that, make preallocate_image_memory() adjust its argument
before calling preallocate_image_pages(), so that the total number of
saveable non-highem pages left is not less than the minimum size of
a hibernation image.  Change hibernate_preallocate_memory() to try to
allocate from highmem if the number of pages allocated by
preallocate_image_memory() is too low.

Modify free_unnecessary_pages() to take all possible memory
allocation patterns into account.

Reported-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: M. Vefa Bicakci <bicave@superonline.com>
2010-09-11 21:03:53 +02:00
..
2010-07-29 13:24:57 +02:00
2010-08-09 16:48:42 -04:00
2010-07-14 11:29:46 +02:00
2010-07-28 09:58:19 -04:00
2010-08-11 00:28:20 -04:00
2010-08-21 08:49:21 -07:00
2010-06-29 10:07:09 +02:00
2010-05-19 08:18:44 +02:00
2010-08-11 23:04:20 +09:30
2010-05-11 12:01:10 -07:00
2010-07-16 09:48:48 +02:00
2010-07-27 12:40:54 +02:00
2010-03-06 11:26:23 -08:00
2010-05-10 08:48:39 +02:00