Concernant 2., zswap semble décompresser les pages en écriture,
confirmant le commentaire de @ Cbhihe.
mm / zswap.c , ligne 828:
/*
* Attempts to free an entry by adding a page to the swap cache,
* decompressing the entry data into the page, and issuing a
* bio write to write the page back to the swap device.
* ...
*/
static int zswap_writeback_entry(struct zpool *pool, unsigned long handle)
{
...
case ZSWAP_SWAPCACHE_NEW: /* page is locked */
/* decompress */
...
ret = crypto_comp_decompress(tfm, src, entry->length,
dst, &dlen);
...
kunmap_atomic(dst);
$ git show
commit 1573d2caf713874cfe0d1336c823d0fb548d8bed
Merge: 4cdf8db 0a86248
Author: Linus Torvalds <[email protected]>
Date: Tue Oct 11 23:59:07 2016 -0700
zswap est donc utile dans les situations où le cache in-ram compressé est
susceptibles d'être oubliés peu de temps avant réécrit sur le disque.
Ce n'est pas pour les applications avec de grandes, longues
des tas vivants qui devront éventuellement être soutenus par le dispositif de swap proprement dit.