
This patch enables threading of compression/decompression and better buffering on hibernate/thaw. The hibernation/thaw speed doubled in my tests with this approach. In addition, CRC32 is calculated and checked, so we can be reasonably sure that what we read in is what we wrote.
The patch should apply to Linux kernel 3.1.0-rc6 and above.
This patch has been merged into 3.2.
These patches use LZO compression (already present in modern 2.6.x kernels) to reduce the amount of data that is written/read to/from disk on hibernate/thaw. This speeds up the writing stage of hibernation by the factor of about 2 to 4 and reading stage of thaw by the factor of about 2. Technically, you need just the first patch. It should apply to 2.6.35 and hopefully above.
The first (somewhat reworked) patch from above has been merged into kernel version 2.6.37. Another patch, that enables async I/O when reading compressed image, has gone into 2.6.37 as well.
Stock pppd now has MPPE support.