summaryrefslogtreecommitdiffstats
path: root/kernel/power/snapshot.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2010-09-20 19:44:56 +0200
committerRafael J. Wysocki <rjw@sisk.pl>2010-10-17 01:57:43 +0200
commitac5c24ec1e983313ef0015258fba6f630e54e7cf (patch)
tree0bd6e99ece68f27b322033fd2ecaea3fa2d9e369 /kernel/power/snapshot.c
parentPM / Hibernate: Improve comments in hibernate_preallocate_memory() (diff)
downloadlinux-ac5c24ec1e983313ef0015258fba6f630e54e7cf.tar.xz
linux-ac5c24ec1e983313ef0015258fba6f630e54e7cf.zip
PM / Hibernate: Make default image size depend on total RAM size
The default hibernation image size is currently hard coded and euqal to 500 MB, which is not a reasonable default on many contemporary systems. Make it equal 2/5 of the total RAM size (this is slightly below the maximum, i.e. 1/2 of the total RAM size, and seems to be generally suitable). Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Tested-by: M. Vefa Bicakci <bicave@superonline.com>
Diffstat (limited to '')
-rw-r--r--kernel/power/snapshot.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
index d9191b40cf6e..ac7eb109f196 100644
--- a/kernel/power/snapshot.c
+++ b/kernel/power/snapshot.c
@@ -46,7 +46,12 @@ static void swsusp_unset_page_forbidden(struct page *);
* size will not exceed N bytes, but if that is impossible, it will
* try to create the smallest image possible.
*/
-unsigned long image_size = 500 * 1024 * 1024;
+unsigned long image_size;
+
+void __init hibernate_image_size_init(void)
+{
+ image_size = ((totalram_pages * 2) / 5) * PAGE_SIZE;
+}
/* List of PBEs needed for restoring the pages that were allocated before
* the suspend and included in the suspend image, but have also been