[PATCH 0/4] zram: generic RAM based compressed R/W block devices (v2)

Nitin Gupta ngupta at vflare.org
Tue Jun 1 08:01:22 UTC 2010


* Changelog v1 vs v2
 - Split file rename and code rename patches
 - Removed useless swap related includes from zram_drv.c
 - Various cleanups suggested by Minchan:
   - Documented rzs->lock mutex in ramzswap_drv.h (see patch 1)
     (this file is renamed to zram_drv.h in patch 2)
   - remove useless 'index' argument in handle_zero_page()
   - Edited comments/messages mentioning 'swap'
   - Removed redundant return from void zram_slot_free_notify()

Creates RAM based block devices: /dev/zramX (X = 0, 1, ...).
Pages written to these disks are compressed and stored in memory
itself. These disks allow very fast I/O and compression provides
good amounts of memory savings.

This is enhancement over existing ramzswap driver which creates
virtual block devices (/dev/ramzswapX) which could be used only
as swap disks.

Now, with the ability to handle any kind of I/O request, zram
devices have lot more use cases:
 - /tmp storage
 - various caches under /var
 - swap disks
 - CacheFiles storage
 - maybe even more! :)

Performance numbers can be found at:
http://code.google.com/p/compcache/wiki/zramperf

Stress testing results:
http://code.google.com/p/compcache/wiki/zramIOzone

Patch 1 makes core changes to support handling generic I/O
requests. Subsequent patches rename ramzswap* files to zram*
and similar changes in code and documentation.

Nitin Gupta (4):
  Support generic I/O requests
  Rename ramzswap files to zram
  Rename ramzswap to zram in code
  Rename ramzswap to zram in documentation

 drivers/staging/Kconfig                            |    2 +-
 drivers/staging/Makefile                           |    2 +-
 drivers/staging/ramzswap/Kconfig                   |   21 -
 drivers/staging/ramzswap/Makefile                  |    3 -
 drivers/staging/ramzswap/ramzswap.txt              |   51 --
 drivers/staging/ramzswap/ramzswap_drv.c            |  837 --------------------
 drivers/staging/zram/Kconfig                       |   28 +
 drivers/staging/zram/Makefile                      |    3 +
 drivers/staging/{ramzswap => zram}/xvmalloc.c      |    0
 drivers/staging/{ramzswap => zram}/xvmalloc.h      |    0
 drivers/staging/{ramzswap => zram}/xvmalloc_int.h  |    0
 drivers/staging/zram/zram.txt                      |   62 ++
 drivers/staging/zram/zram_drv.c                    |  804 +++++++++++++++++++
 .../{ramzswap/ramzswap_drv.h => zram/zram_drv.h}   |   71 +-
 .../ramzswap_ioctl.h => zram/zram_ioctl.h}         |   21 +-
 15 files changed, 943 insertions(+), 962 deletions(-)
 delete mode 100644 drivers/staging/ramzswap/Kconfig
 delete mode 100644 drivers/staging/ramzswap/Makefile
 delete mode 100644 drivers/staging/ramzswap/ramzswap.txt
 delete mode 100644 drivers/staging/ramzswap/ramzswap_drv.c
 create mode 100644 drivers/staging/zram/Kconfig
 create mode 100644 drivers/staging/zram/Makefile
 rename drivers/staging/{ramzswap => zram}/xvmalloc.c (100%)
 rename drivers/staging/{ramzswap => zram}/xvmalloc.h (100%)
 rename drivers/staging/{ramzswap => zram}/xvmalloc_int.h (100%)
 create mode 100644 drivers/staging/zram/zram.txt
 create mode 100644 drivers/staging/zram/zram_drv.c
 rename drivers/staging/{ramzswap/ramzswap_drv.h => zram/zram_drv.h} (69%)
 rename drivers/staging/{ramzswap/ramzswap_ioctl.h => zram/zram_ioctl.h} (68%)




More information about the devel mailing list