linux/drivers/staging
Dan Magenheimer 76426daf50 staging/zcache: Fix/improve zcache writeback code, tie to a config option
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: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-11 14:58:56 -08:00
..
android staging: alarm-dev: Implement compat_ioctl support 2013-01-18 12:37:11 -08:00
asus_oled staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
bcm staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
ccg TTY/Serial merge for 3.8-rc1 2012-12-11 14:08:47 -08:00
ced1401 staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
comedi staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
cptm1217 staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
crystalhd staging: crystalhd: remove use of __devexit 2012-11-21 15:05:12 -08:00
csr staging/csr: Use kmemdup rather than duplicating its implementation 2013-01-29 23:22:16 -05:00
cxt1e1 staging: cxt1e1: buffer overflow in do_del_chan() 2013-01-25 11:21:26 -08:00
dgrp staging: dgrp: prefix function names with dgrp_ in dgrp_specproc.c 2013-02-08 12:17:52 -08:00
echo staging: echo.c: fix memory leakage 2013-01-07 14:03:32 -08:00
et131x staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
frontier staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
ft1000 staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
fwserial staging/fwserial: Fix compiler warning 2013-01-31 10:30:34 +01:00
gdm72xx staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
goldfish staging/goldfish: Add MTD dependency to KCONFIG 2013-02-07 17:16:07 -08:00
iio staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
imx-drm staging: ipu-di: Change DI address info to dev_dbg 2013-01-17 13:52:37 -08:00
keucr staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
line6 staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-12-13 19:22:22 -08:00
net staging: net: remove use of __devexit 2012-11-21 15:05:02 -08:00
nvec staging: nvec: cleanup the string mess 2013-01-29 23:25:10 -05:00
octeon staging: octeon: remove use of __devexit 2012-11-21 15:05:02 -08:00
olpc_dcon
omap-thermal staging: omap-thermal/omap-bandgap.c: adjust duplicate test 2013-01-21 14:00:10 -08:00
omapdrm staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
ozwpan staging:ozwpan: Fix following warning. 2013-01-29 23:25:10 -05:00
panel staging: panel: pass correct lengths to keypad_send_key() 2012-11-29 18:16:15 -08:00
phison
quickstart
rtl8187se staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
rtl8192e staging: rtl8192e: Fix failure to check pci_map_single() 2013-01-07 12:57:27 -08:00
rtl8192u staging: rtl8192u: fixed coding style issues in r8192U_core.c 2013-01-11 16:37:11 -08:00
rtl8712 rtl8712: remove unused definitions from ethernet.h 2013-01-11 16:39:12 -08:00
rts5139
sb105x Merge 3.8-rc5 into staging-next 2013-01-25 21:25:02 -08:00
sbe-2t3e3 staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
sep staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
serqt_usb2
silicom
slicoss staging: slicoss: Fix space-related checkpatch.pl warnings 2013-01-17 13:53:06 -08:00
sm7xxfb staging: sm7xxfb: remove use of __devexit 2012-11-21 15:05:12 -08:00
speakup staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
ste_rmi4 staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
tidspbridge staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
usbip staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
vme staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
vt6655 staging: vt6655: no braces needed for single statement if , for blocks 2013-01-17 13:17:03 -08:00
vt6656 staging/vt6656: Fix sparse warning constant 0xffffffff00000000U is so big it is unsigned long 2013-02-05 14:37:44 -08:00
winbond staging: Add angle bracket before and after the URL 2013-01-07 14:56:04 -08:00
wlags49_h2 staging: wlags49_h2: remove unneeded memset() in wireless_get_bssid() 2013-01-07 11:08:12 -08:00
wlags49_h25
wlan-ng Staging: wlan-ng: Fix tab coding style issue in hfa384x.h 2013-02-03 17:42:07 -08:00
xgifb staging: xgifb: XGI_SetDelayComp(): delete IF_DEF_LVDS check 2013-02-08 15:39:58 -08:00
zcache staging/zcache: Fix/improve zcache writeback code, tie to a config option 2013-02-11 14:58:56 -08:00
zram staging: Remove unnecessary OOM messages 2013-02-11 10:10:33 -08:00
zsmalloc staging: zsmalloc: remove unused pool name 2013-01-30 18:22:41 +01:00
Kconfig goldfish: audio support 2013-01-24 13:51:38 -08:00
Makefile goldfish: audio support 2013-01-24 13:51:38 -08:00
staging.c