Zswap Merged Into The Linux 3.11 Kernel

Making the Linux 3.11 kernel an even more exciting release was the merger on Wednesday of the Zswap support. Per the Linux kernel documentation, "Zswap is a lightweight compressed cache for swap pages. It takes pages that are in the process of being swapped out and attempts to compress them into a dynamically allocated RAM-based memory pool. zswap basically trades CPU cycles for potentially reduced swap I/O. This trade-off can also result in a significant performance improvement if reads from the compressed cache are faster than reads from a swap device."
Among potentially beneficial scenarios are desktop/laptops with limited RAM, overcommitted virtualization guests sharing common I/O resources, and users with SSDs as swap devices can extend their devices life by shortening writes. With the Kconfig ZSWAP support for Zswap enabled, it's just a matter of setting zswap.enabled=1 as a kernel module parameter.
As part of the Zswap work, Zbud was also added to the kernel tree for 3.11. Zbud is a special purpose memory allocator for storing compressed pages. This allocator is a rewrite of the Zbud code found in Zcache.
The merge to mainline of Zswap happened with this commit. "Zswap is a thin backend for frontswap that takes pages that are in the process of being swapped out and attempts to compress them and store them in a RAM-based memory pool."
10 Comments
