Minchan Kim
cd67e10ac6
zram: promote zram from staging
...
Zram has lived in staging for a LONG LONG time and have been
fixed/improved by many contributors so code is clean and stable now. Of
course, there are lots of product using zram in real practice.
The major TV companys have used zram as swap since two years ago and
recently our production team released android smart phone with zram
which is used as swap, too and recently Android Kitkat start to use zram
for small memory smart phone. And there was a report Google released
their ChromeOS with zram, too and cyanogenmod have been used zram long
time ago. And I heard some disto have used zram block device for tmpfs.
In addition, I saw many report from many other peoples. For example,
Lubuntu start to use it.
The benefit of zram is very clear. With my experience, one of the
benefit was to remove jitter of video application with backgroud memory
pressure. It would be effect of efficient memory usage by compression
but more issue is whether swap is there or not in the system. Recent
mobile platforms have used JAVA so there are many anonymous pages. But
embedded system normally are reluctant to use eMMC or SDCard as swap
because there is wear-leveling and latency issues so if we do not use
swap, it means we can't reclaim anoymous pages and at last, we could
encounter OOM kill. :(
Although we have real storage as swap, it was a problem, too. Because
it sometime ends up making system very unresponsible caused by slow swap
storage performance.
Quote from Luigi on Google
"Since Chrome OS was mentioned: the main reason why we don't use swap
to a disk (rotating or SSD) is because it doesn't degrade gracefully
and leads to a bad interactive experience. Generally we prefer to
manage RAM at a higher level, by transparently killing and restarting
processes. But we noticed that zram is fast enough to be competitive
with the latter, and it lets us make more efficient use of the
available RAM. " and he announced.
http://www.spinics.net/lists/linux-mm/msg57717.html
Other uses case is to use zram for block device. Zram is block device
so anyone can format the block device and mount on it so some guys on
the internet start zram as /var/tmp.
http://forums.gentoo.org/viewtopic-t-838198-start-0.html
Let's promote zram and enhance/maintain it instead of removing.
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Nitin Gupta <ngupta@vflare.org>
Acked-by: Pekka Enberg <penberg@kernel.org>
Cc: Bob Liu <bob.liu@oracle.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Hugh Dickins <hughd@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Luigi Semenzato <semenzato@google.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Rik van Riel <riel@redhat.com>
Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-01-30 16:56:55 -08:00
..
ABI
Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/
2014-01-29 16:22:40 -08:00
accounting
Documentation/accounting/getdelays.c: avoid strncpy in accounting tool
2013-07-03 16:08:06 -07:00
acpi
ACPI and power management updates for 3.14-rc1
2014-01-24 15:51:02 -08:00
aoe
aoe: remove do-nothing NAME="%k" term from example udev rules
2013-09-11 15:59:28 -07:00
arm
ARM: SoC platform changes for 3.14
2014-01-23 18:40:49 -08:00
arm64
arm64: Use 42-bit address space with 64K pages
2013-11-05 17:23:52 +00:00
auxdisplay
backlight
backlight: lp855x_bl: support new LP8555 device
2013-11-13 12:09:14 +09:00
blackfin
block
Linux 3.13-rc6
2013-12-31 09:51:02 -07:00
blockdev
zram: promote zram from staging
2014-01-30 16:56:55 -08:00
bus-devices
cdrom
cgroups
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2014-01-25 11:17:34 -08:00
connector
connector - documentation: simplify netlink message length assignment
2013-10-02 16:03:51 -04:00
console
TTY:console: update document console.txt
2013-05-21 10:21:57 -07:00
cpu-freq
Documentation: cpufreq / boost: Update BOOST documentation
2014-01-17 02:00:45 +01:00
cpuidle
cpuidle: remove cpuidle_unregister_governor()
2013-10-30 01:21:24 +01:00
cris
crypto
drivers/dma: remove unused support for MEMSET operations
2013-07-03 16:07:42 -07:00
development-process
Documentation: development-process: Update -mm and -next URLs
2013-07-25 12:37:24 +02:00
device-mapper
dm cache: add policy name to status output
2014-01-16 13:44:11 -05:00
devicetree
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
2014-01-29 20:49:12 -08:00
DocBook
Merge branch 'master' into for-next
2013-12-19 15:08:32 +01:00
driver-model
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2014-01-22 21:21:55 -08:00
dvb
[media] get_dvb_firmware: Fix the location of firmware for Terratec HTC
2013-01-01 11:18:26 -02:00
early-userspace
Documentation: remove reference to 2.7 kernel in early-userspace
2013-08-20 12:47:28 +02:00
EDID
drm: Add 1600x1200 (UXGA) screen resolution to the built-in EDIDs
2013-04-12 14:06:16 +10:00
extcon
extcon: fix switch class porting guide (Documentation)
2014-01-07 11:54:28 +09:00
fault-injection
fb
Documentation/fb/viafb.modes fix a typo
2013-08-20 12:41:11 +02:00
filesystems
Merge branch 'for-3.14' of git://linux-nfs.org/~bfields/linux
2014-01-30 10:18:43 -08:00
firmware_class
fmc
doc: Fix typo "is is" in Documentations
2013-08-27 10:50:52 +02:00
frv
gpio
gpiolib: return -ENOENT if no GPIO mapping exists
2013-12-12 19:33:59 +01:00
hid
HID: uhid: use generic hidinput_input_event()
2013-07-31 10:33:05 +02:00
hwmon
Update Jean Delvare's e-mail address
2014-01-29 20:40:08 +01:00
i2c
Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
2014-01-29 19:56:20 -08:00
i2o
ia64
Fix example error_injection_tool
2013-04-02 09:39:55 -07:00
ide
infiniband
input
Input: fix typos in Documentation/input/gamepad.txt
2013-12-18 08:47:43 -08:00
ioctl
s390/hypfs: add interface for diagnose 0x304
2014-01-24 09:40:59 +01:00
isdn
ja_JP
Documentation: ja_JP: Update broken link to tpp
2013-12-10 23:09:08 -08:00
kbuild
Documentation/kbuild/kconfig.txt: 'make listnewconfig' replaces: yes "" | make oldconfig
2013-10-08 23:51:50 +02:00
kdump
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-07-04 11:40:58 -07:00
ko_KR
Documentation: HOWTO: Updates on subsystem trees, patchwork, -next (vs. -mm) in ko_KR
2014-01-08 15:32:51 -08:00
laptops
Documentation: Fix size parameter for snprintf
2014-01-02 10:47:33 +01:00
leds
leds: lp5523: Support LED MUX configuration on running a pattern
2014-01-27 17:28:48 -08:00
m68k
block: remove refs to XD disks from documentation
2013-05-17 15:17:12 +02:00
make
memory-devices
metag
doc: fix misspellings with 'codespell' tool
2013-05-28 12:02:12 +02:00
mic
misc: mic: Fix endianness issues.
2013-11-27 11:03:38 -08:00
mips
misc-devices
Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
2014-01-29 18:56:27 -08:00
mmc
mmc: core: Add in support to expose PRV for v4 MMCs
2013-03-22 12:10:42 -04:00
mn10300
mtd
mtd: nand: pxa3xx: Add documentation about the controller
2014-01-03 11:22:09 -08:00
namespaces
userns: Recommend use of memory control groups.
2013-01-26 22:20:06 -08:00
netlabel
networking
net: Document promote_secondaries
2014-01-27 20:39:21 -08:00
nfc
NFC: Update pn544 documentation
2013-01-10 01:27:46 +01:00
parisc
parisc: document the shadow registers
2013-07-09 22:09:19 +02:00
PCI
Merge branch 'pci/msi' into next
2014-01-07 17:34:39 -07:00
pcmcia
power
Documentation/: update FireWire debugging documentation
2014-01-12 18:54:38 +01:00
powerpc
powerpc: Update the 00-Index in Documentation/powerpc
2013-08-27 14:44:27 +10:00
pps
USB: serial: invoke dcd_change ldisc's handler.
2013-09-26 09:45:40 -07:00
prctl
pti
ptp
ptp: add the PTP_SYS_OFFSET ioctl to the testptp program
2013-09-23 16:46:17 -04:00
rapidio
doc: Fix typo in doucmentations
2013-07-25 12:34:15 +02:00
RCU
Merge branches 'doc.2013.12.03a', 'fixes.2013.12.12a', 'rcutorture.2013.12.03a' and 'sparse.2013.12.12a' into HEAD
2013-12-12 12:35:38 -08:00
s390
qeth: bridgeport support - address notifications
2014-01-15 14:48:01 -08:00
scheduler
H8/300 has been dead for several years, the kernel for it has
2013-11-12 14:13:14 +09:00
scsi
Main batch of InfiniBand/RDMA changes for 3.14:
2014-01-24 17:18:32 -08:00
security
ima: update IMA-templates.txt documentation
2014-01-03 07:42:59 -05:00
serial
serial: core: delete .set_wake() callback
2013-10-16 13:16:19 -07:00
sh
sound
ASoC: docs: Update the Overview document
2014-01-07 17:56:32 +00:00
spi
spi: Correction to typos in Documentation/spi/spi-summary
2013-12-09 17:22:19 +00:00
sysctl
mm: document improved handling of swappiness==0
2014-01-29 16:22:39 -08:00
target
target: Remove TF_CIT_TMPL macro
2013-10-16 13:35:02 -07:00
thermal
thermal: thermal_core: allow binding with limits on bind_params
2013-09-03 09:10:24 -04:00
timers
doc: add missing files to timers/00-INDEX
2013-10-27 21:55:50 +00:00
tpm
drivers/tpm: add xen tpmfront interface
2013-08-09 10:57:06 -04:00
trace
Documentation/trace/postprocess/trace-vmscan-postprocess.pl: fix the traceevent regex
2014-01-23 16:36:52 -08:00
usb
doc: Fix typo in USB Gadget Documentation
2014-01-10 15:33:54 +01:00
vDSO
video4linux
[media] V4L: Add support for integer menu controls with standard menu items
2013-08-18 07:12:59 -03:00
virtual
Merge tag 'kvm-arm-for-3.14' of git://git.linaro.org/people/christoffer.dall/linux-kvm-arm into kvm-queue
2014-01-15 12:14:29 +01:00
vm
mm: documentation: remove hopelessly out-of-date locking doc
2014-01-23 16:36:50 -08:00
w1
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-07-04 11:40:58 -07:00
watchdog
watchdog: delete mpcore_wdt driver
2013-07-11 21:47:58 +02:00
wimax
x86
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2014-01-22 21:21:55 -08:00
xtensa
xtensa: remap io area defined in device tree
2014-01-15 00:25:14 +04:00
zh_CN
Documentation: zh_CN: Update broken link to tpp
2013-12-10 23:09:08 -08:00
.gitignore
00-INDEX
doc: fix a typo in Documentation/00-INDEX
2013-08-27 10:53:07 +02:00
applying-patches.txt
assoc_array.txt
KEYS: Fix multiple key add into associative array
2013-12-02 11:24:18 +00:00
atomic_ops.txt
Documentation: Memory barrier semantics of atomic_xchg()
2013-01-08 14:14:55 -08:00
bad_memory.txt
basic_profiling.txt
bcache.txt
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-07-04 11:40:58 -07:00
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt
cachetlb.txt
Documentation: fix typo and update version in cachetlb.txt
2013-08-20 12:46:52 +02:00
Changes
remove obsolete references to powertweak
2013-11-27 20:34:32 -08:00
circular-buffers.txt
documentation: Update circular buffer for load-acquire/store-release
2013-12-03 10:08:57 -08:00
clk.txt
clk: Add set_rate_and_parent() op
2014-01-16 12:00:57 -08:00
coccinelle.txt
Coccinelle: Update information about the minimal version required
2013-07-03 22:58:20 +02:00
CodingStyle
Documentation/CodingStyle: allow multiple return statements per function
2013-07-03 16:08:01 -07:00
cpu-hotplug.txt
Documentation/cpu-hotplug.txt: fix a typo in example code
2014-01-23 16:37:01 -08:00
cpu-load.txt
cputopology.txt
doc: Documentation/cputopology.txt fix typo
2013-09-04 12:59:47 +02:00
crc32.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
firewire: Enable remote DMA above 4 GB
2014-01-20 01:11:13 +01:00
dell_rbu.txt
devices.txt
misc: Reserve minor for VFIO
2013-12-19 10:17:11 -07:00
digsig.txt
DMA-API-HOWTO.txt
DMA-API: provide a helper to set both DMA and coherent DMA masks
2013-09-17 15:32:37 +01:00
DMA-API.txt
DMA-API: provide a helper to set both DMA and coherent DMA masks
2013-09-17 15:32:37 +01:00
DMA-attributes.txt
doc: Documentation/DMA-attributes.txt fix typo
2013-10-14 15:50:53 +02:00
dma-buf-sharing.txt
dma-buf: Expose buffer size to userspace (v2)
2013-09-10 11:36:45 +05:30
DMA-ISA-LPC.txt
dmaengine.txt
dmatest.txt
dmatest: add a 'wait' parameter
2013-11-14 11:04:40 -08:00
dontdiff
dynamic-debug-howto.txt
dynamic-debug-howto.txt: update since new wildcard support
2014-01-23 16:36:55 -08:00
edac.txt
efi-stub.txt
doc: Fix trivial spelling mistake in efi-stub.txt
2013-12-19 15:09:14 +01:00
eisa.txt
email-clients.txt
doc: fix some typos
2013-12-02 14:48:28 +01:00
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gcov: compile specific gcov implementation based on gcc version
2013-11-13 12:09:34 +09:00
highuid.txt
HOWTO
Documentation: HOWTO: Update broken links to tpp
2013-12-10 23:09:08 -08:00
hw_random.txt
hwrng: Fix a wrong comment in Documentation/hw_random.txt
2013-03-10 18:16:36 +08:00
hwspinlock.txt
doc: documentation/hwspinlock.txt fix typo
2013-08-27 10:46:02 +02:00
init.txt
initrd.txt
Intel-IOMMU.txt
intel_txt.txt
Documentation: remove depends on CONFIG_EXPERIMENTAL
2013-01-11 11:38:03 -08:00
io-mapping.txt
doc: fix some typos
2013-12-02 14:48:28 +01:00
io_ordering.txt
iostats.txt
iostats.txt: add easy-to-find description for field 6
2013-04-29 15:18:50 +02:00
IPMI.txt
ipmi: add options to disable openfirmware and PCI scanning
2013-02-27 19:10:21 -08:00
IRQ-affinity.txt
doc: fix a typo about irq affinity
2013-08-20 12:59:18 +02:00
IRQ-domain.txt
doc: fix some typos
2013-12-02 14:48:28 +01:00
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-doc: Update references to SGML to refs to XML instead.
2013-05-28 12:02:11 +02:00
kernel-docs.txt
kernel-parameters.txt
Bug-fixes:
2014-01-27 08:17:09 -08:00
kernel-per-CPU-kthreads.txt
kthread: Add pointer to vmstat-avoidance patch
2013-09-25 06:49:46 -07:00
kmemcheck.txt
Documentation/kmemcheck: update kmemcheck documentation
2013-08-27 10:47:05 +02:00
kmemleak.txt
kobject.txt
kobject: remove kset from sysfs immediately in kset_unregister()
2013-12-07 21:20:11 -08:00
kprobes.txt
kref.txt
ldm.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
lockstat: Report avg wait and hold times
2013-10-09 08:19:08 +02:00
lockup-watchdogs.txt
logo.gif
logo.txt
magic-number.txt
wanrouter: completely decouple obsolete code from kernel.
2013-01-31 19:20:33 -05:00
Makefile
ManagementStyle
md.txt
doc: fix some typos in documentations
2013-12-02 14:45:19 +01:00
media-framework.txt
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
2013-07-13 12:09:57 -07:00
memory-barriers.txt
locking/doc: Rename LOCK/UNLOCK to ACQUIRE/RELEASE
2014-01-12 10:37:13 +01:00
memory-hotplug.txt
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-09-06 09:36:28 -07:00
module-signing.txt
Add Documentation/module-signing.txt file
2013-12-13 15:59:11 +00:00
mono.txt
mutex-design.txt
locking/doc: Update references to kernel/mutex.c
2013-11-11 12:41:33 +01:00
nommu-mmap.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
percpu-rw-semaphore.txt
phy.txt
drivers: phy: add generic PHY framework
2013-09-27 17:35:41 -07:00
pi-futex.txt
pinctrl.txt
pinctrl: Fix some typos and grammar issues in the documentation
2014-01-15 13:59:50 +01:00
pnp.txt
preempt-locking.txt
printk-formats.txt
vsprintf: add %pad extension for dma_addr_t use
2014-01-23 16:36:56 -08:00
pwm.txt
Documentation/pwm: Fix trivial typos
2013-10-24 10:51:33 +02:00
ramoops.txt
rbtree.txt
remoteproc.txt
rfkill.txt
doc: fix some typos in documentations
2013-12-02 14:45:19 +01:00
robust-futex-ABI.txt
Documentation/robust-futex-API: Count properly to 4
2013-11-30 14:08:28 +01:00
robust-futexes.txt
rpmsg.txt
Documentation: remove __dev* attributes.
2013-01-03 15:57:16 -08:00
rt-mutex-design.txt
doc: fix some typos in documentations
2013-12-02 14:45:19 +01:00
rt-mutex.txt
rtc.txt
rtc: add ability to push out an existing wakealarm using sysfs
2013-07-03 16:07:54 -07:00
SAK.txt
SecurityBugs
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
smsc_ece1099.txt
sparse.txt
spinlocks.txt
sched: Rename sched.c as sched/core.c in comments and Documentation
2013-06-19 12:58:42 +02:00
stable_api_nonsense.txt
stable_kernel_rules.txt
static-keys.txt
doc: fix some typos in documentations
2013-12-02 14:45:19 +01:00
SubmitChecklist
Finally eradicate CONFIG_HOTPLUG
2013-06-03 14:20:18 -07:00
SubmittingDrivers
SubmittingPatches
Documentation/SubmittingPatches: Request summaries for commit references
2013-08-20 12:58:15 +02:00
svga.txt
sysfs-rules.txt
doc: Fix typo in doucmentations
2013-07-25 12:34:15 +02:00
sysrq.txt
sysrq: Allow magic SysRq key functions to be disabled through Kconfig
2013-10-16 13:01:44 -07:00
this_cpu_ops.txt
percpu: add documentation on this_cpu operations
2013-04-04 10:24:53 -07:00
unaligned-memory-access.txt
ether_addr_equal: Optimize implementation, remove unused compare_ether_addr
2013-12-06 16:37:43 -05:00
unicode.txt
unshare.txt
vfio.txt
vfio: fix documentation
2013-09-05 16:36:21 -06:00
VGA-softcursor.txt
vgaarbiter.txt
video-output.txt
vme_api.txt
VME: Rename vme_slot_get to avoid confusion with reference counting
2013-12-03 11:15:58 -08:00
volatile-considered-harmful.txt
workqueue.txt
workqueue: Correct/Drop references to gcwq in Documentation
2013-08-21 10:32:09 -04:00
ww-mutex-design.txt
mutex: Add support for wound/wait style locks
2013-06-26 12:10:56 +02:00
xz.txt
zorro.txt
zorro/UAPI: Disintegrate include/linux/zorro*.h
2013-11-26 11:09:08 +01:00