PM / Hibernate: Reduce autotuned default image size
Subsystems (2)
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
Reported-and-tested-by Martin Steigerwald <[email protected]>
Signed-off-by Rafael J. Wysocki <[email protected]>
--- kernel/power/snapshot.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
kernel/power/snapshot.c +4 -4
@@ -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