Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ config HIBERNATION
	select HIBERNATE_CALLBACKS
	select LZO_COMPRESS
	select LZO_DECOMPRESS
	select CRC32
	---help---
	  Enable the suspend to disk (STD) functionality, which is usually
	  called "hibernation" in user interfaces.  STD checkpoints the
+3 −0
Original line number Diff line number Diff line
@@ -657,6 +657,9 @@ int hibernate(void)
			flags |= SF_PLATFORM_MODE;
		if (nocompress)
			flags |= SF_NOCOMPRESS_MODE;
		else
		        flags |= SF_CRC32_MODE;

		pr_debug("PM: writing image.\n");
		error = swsusp_write(flags);
		swsusp_free();
+1 −0
Original line number Diff line number Diff line
@@ -146,6 +146,7 @@ extern int swsusp_swap_in_use(void);
 */
#define SF_PLATFORM_MODE	1
#define SF_NOCOMPRESS_MODE	2
#define SF_CRC32_MODE	        4

/* kernel/power/hibernate.c */
extern int swsusp_check(void);
+640 −178

File changed.

Preview size limit exceeded, changes collapsed.