Commit 081a9d04 authored by Bojan Smojver's avatar Bojan Smojver Committed by Rafael J. Wysocki

PM / Hibernate: Improve performance of LZO/plain hibernation, checksum image

Use threads for LZO compression/decompression on hibernate/thaw.
Improve buffering on hibernate/thaw.
Calculate/verify CRC32 of the image pages on hibernate/thaw.

In my testing, this improved write/read speed by a factor of about two.
Signed-off-by: default avatarBojan Smojver <bojan@rexursive.com>
Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
parent d231ff1a
...@@ -27,6 +27,7 @@ config HIBERNATION ...@@ -27,6 +27,7 @@ config HIBERNATION
select HIBERNATE_CALLBACKS select HIBERNATE_CALLBACKS
select LZO_COMPRESS select LZO_COMPRESS
select LZO_DECOMPRESS select LZO_DECOMPRESS
select CRC32
---help--- ---help---
Enable the suspend to disk (STD) functionality, which is usually Enable the suspend to disk (STD) functionality, which is usually
called "hibernation" in user interfaces. STD checkpoints the called "hibernation" in user interfaces. STD checkpoints the
......
...@@ -657,6 +657,9 @@ int hibernate(void) ...@@ -657,6 +657,9 @@ int hibernate(void)
flags |= SF_PLATFORM_MODE; flags |= SF_PLATFORM_MODE;
if (nocompress) if (nocompress)
flags |= SF_NOCOMPRESS_MODE; flags |= SF_NOCOMPRESS_MODE;
else
flags |= SF_CRC32_MODE;
pr_debug("PM: writing image.\n"); pr_debug("PM: writing image.\n");
error = swsusp_write(flags); error = swsusp_write(flags);
swsusp_free(); swsusp_free();
......
...@@ -146,6 +146,7 @@ extern int swsusp_swap_in_use(void); ...@@ -146,6 +146,7 @@ extern int swsusp_swap_in_use(void);
*/ */
#define SF_PLATFORM_MODE 1 #define SF_PLATFORM_MODE 1
#define SF_NOCOMPRESS_MODE 2 #define SF_NOCOMPRESS_MODE 2
#define SF_CRC32_MODE 4
/* kernel/power/hibernate.c */ /* kernel/power/hibernate.c */
extern int swsusp_check(void); extern int swsusp_check(void);
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment