Commit bea3864fb627d110933cfb8babe048b63c4fc76e
1 parent
40dc166cb5
Exists in
master
and in
4 other branches
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 |