On 05/22/2010 09:08 PM, Cesar Eduardo Barros wrote:
Add support for checksumming the swap pages written to disk, using the same checksum as btrfs (crc32c). Since the contents of the swap do not matter after a shutdown, the checksum is kept in memory only. Note that this code does not checksum the software suspend image. #define SWAP_FLAG_PREFER 0x8000 /* set if swap priority specified */ #define SWAP_FLAG_PRIO_MASK 0x7fff @@ -180,6 +183,10 @@ struct swap_info_struct { struct swap_extent *curr_swap_extent; struct swap_extent first_swap_extent; struct block_device *bdev; /* swap device or bdev of swap file */ +#ifdef CONFIG_SWAP_CHECKSUM + unsigned short *csum_count; /* usage count of a csum page */ + u32 **csum; /* vmalloc'ed array of swap csums */ +#endif struct file *swap_file; /* seldom referenced */ unsigned int old_block_size; /* seldom referenced */ };
On 64-bit, we may be able to store the checksum in the pte, if the swap device is small enough.
If we take the trouble to touch the page, we may as well compare it against zero, and if so drop it instead of swapping it out.
-- error compiling committee.c: too many arguments to function -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>