Commit bea3864fb627d110933cfb8babe048b63c4fc76e

Authored by Rafael J. Wysocki
1 parent 40dc166cb5

PM / Hibernate: Reduce autotuned default image size

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 <Martin@Lichtvoll.de>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

Showing 1 changed file with 4 additions and 4 deletions Side-by-side Diff

kernel/power/snapshot.c
... ... @@ -42,15 +42,15 @@
42 42  
43 43 /*
44 44 * Preferred image size in bytes (tunable via /sys/power/image_size).
45   - * When it is set to N, swsusp will do its best to ensure the image
46   - * size will not exceed N bytes, but if that is impossible, it will
47   - * try to create the smallest image possible.
  45 + * When it is set to N, the image creating code will do its best to
  46 + * ensure the image size will not exceed N bytes, but if that is
  47 + * impossible, it will try to create the smallest image possible.
48 48 */
49 49 unsigned long image_size;
50 50  
51 51 void __init hibernate_image_size_init(void)
52 52 {
53   - image_size = ((totalram_pages * 2) / 5) * PAGE_SIZE;
  53 + image_size = (totalram_pages / 3) * PAGE_SIZE;
54 54 }
55 55  
56 56 /* List of PBEs needed for restoring the pages that were allocated before