Skip to contentSkip to conversation

PM / Hibernate: Reduce autotuned default image size

PATCH New Rafael J. Wysocki 1 participant 1 message Mar 14, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 PM / Hibernate: Reduce autotuned default image size

From: Rafael J. Wysocki <[email protected]>

The hibernate image size autotuning mechanism sets the default image size to 5/2 of the total system RAM, but it is reported that on some systems device drivers allocate substantial amounts of memory during suspend and the creation of the image fails as a result (too little memory is preallocated).

Modify the autotuning mechanism to use 1/3 instead of 2/5 of RAM as the default image size, which is reported to be sufficient for the affected systems.

References: https://bugzilla.kernel.org/show_bug.cgi?id=30482

---
 kernel/power/snapshot.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
kernel/power/snapshot.c +4 -4
Index: linux-2.6/kernel/power/snapshot.c
===================================================================
@@ -42,15 +42,15 @@ static void swsusp_unset_page_forbidden(
 
 /*
  * Preferred image size in bytes (tunable via /sys/power/image_size).
- * When it is set to N, swsusp will do its best to ensure the image
- * size will not exceed N bytes, but if that is impossible, it will
- * try to create the smallest image possible.
+ * When it is set to N, the image creating code will do its best to
+ * ensure the image size will not exceed N bytes, but if that is
+ * impossible, it will try to create the smallest image possible.
  */
 unsigned long image_size;
 
 void __init hibernate_image_size_init(void)
 {
-	image_size = ((totalram_pages * 2) / 5) * PAGE_SIZE;
+	image_size = (totalram_pages / 3) * PAGE_SIZE;
 }
 
 /* List of PBEs needed for restoring the pages that were allocated before