• Dan Magenheimer's avatar
    staging/zcache: Fix/improve zcache writeback code, tie to a config option · 76426daf
    Dan Magenheimer authored
    It was observed by Andrea Arcangeli in 2011 that zcache can get "full"
    and there must be some way for compressed swap pages to be (uncompressed
    and then) sent through to the backing swap disk.  A prototype of this
    functionality, called "unuse", was added in 2012 as part of a major update
    to zcache (aka "zcache2"), but was left unfinished due to the unfortunate
    temporary fork of zcache.
    
    This earlier version of the code had an unresolved memory leak
    and was anyway dependent on not-yet-upstream frontswap and mm changes.
    The code was meanwhile adapted by Seth Jennings for similar
    functionality in zswap (which he calls "flush").  Seth also made some
    clever simplifications which are herein ported back to zcache.  As a
    result of those simplifications, the frontswap changes are no longer
    necessary, but a slightly different (and simpler) set of mm changes are
    still required [1].  The memory leak is also fixed.
    
    Due to feedback from akpm in a zswap thread, this functionality in zcache
    has now been renamed from "unuse" to "writeback".
    
    Although this zcache writeback code now works, there are open questions
    as how best to handle the policy that drives it.  As a result, this
    patch also ties writeback to a new config option.  And, since the
    code still depends on not-yet-upstreamed mm patches, to avoid build
    problems, the config option added by this patch temporarily depends
    on "BROKEN"; this config dependency can be removed in trees that
    contain the necessary mm patches.
    
    [1] https://lkml.org/lkml/2013/1/29/540/ https://lkml.org/lkml/2013/1/29/539/Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    76426daf
Kconfig 1.93 KB