[PATCH 00/10] zram: various improvements and cleanups

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Nitin Gupta
Date: Monday, August 9, 2010 - 10:26 am

The zram module creates RAM based block devices named /dev/zram<id>
(<id> = 0, 1, ...). Pages written to these disks are compressed and stored
in memory itself.

One of the major changes done is the replacement of ioctls with sysfs
interface. One of the advantages of this approach is we no longer depend on the
userspace tool (rzscontrol) which was used to set various parameters and check
statistics. Maintaining updated version of rzscontrol as changes were done to
ioctls, statistics exported etc. was a major pain.

Another significant change is the introduction of percpu stats and compression
buffers. Earlier, we had per-device buffers protected by a mutex. This was a
major bottleneck on multi-core systems. With these changes, benchmarks with
fio[1] showed a speedup of about 20% for write performance on dual-core
system (see patch 4/10 description for details).


For easier testing, a single patch against 2.6.35-git8 has been uploaded at:
http://compcache.googlecode.com/hg/sub-projects/mainline/zram_2.6.36-rc0.patch

[1] fio I/O benchmarking tool: http://freshmeat.net/projects/fio/

Nitin Gupta (10):
  Replace ioctls with sysfs interface
  Remove need for explicit device initialization
  Use percpu stats
  Use percpu buffers
  Reduce per table entry overhead by 4 bytes
  Block discard support
  Increase compressed page size threshold
  Some cleanups
  Update zram documentation
  Document sysfs entries

 Documentation/ABI/testing/sysfs-block-zram |   99 ++++
 drivers/staging/zram/Kconfig               |   12 -
 drivers/staging/zram/Makefile              |    2 +-
 drivers/staging/zram/xvmalloc.c            |   22 +-
 drivers/staging/zram/zram.txt              |   58 ++-
 drivers/staging/zram/zram_drv.c            |  670 ++++++++++++++--------------
 drivers/staging/zram/zram_drv.h            |  138 ++----
 drivers/staging/zram/zram_ioctl.h          |   41 --
 drivers/staging/zram/zram_sysfs.c          |  253 +++++++++++
 9 files changed, 760 insertions(+), 535 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-block-zram
 delete mode 100644 drivers/staging/zram/zram_ioctl.h
 create mode 100644 drivers/staging/zram/zram_sysfs.c

-- 
1.7.2.1

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00/10] zram: various improvements and cleanups, Nitin Gupta, (Mon Aug 9, 10:26 am)
[PATCH 01/10] Replace ioctls with sysfs interface, Nitin Gupta, (Mon Aug 9, 10:26 am)
[PATCH 03/10] Use percpu stats, Nitin Gupta, (Mon Aug 9, 10:26 am)
[PATCH 04/10] Use percpu buffers, Nitin Gupta, (Mon Aug 9, 10:26 am)
[PATCH 06/10] Block discard support, Nitin Gupta, (Mon Aug 9, 10:26 am)
[PATCH 07/10] Increase compressed page size threshold, Nitin Gupta, (Mon Aug 9, 10:26 am)
[PATCH 08/10] Some cleanups, Nitin Gupta, (Mon Aug 9, 10:26 am)
[PATCH 09/10] Update zram documentation, Nitin Gupta, (Mon Aug 9, 10:26 am)
[PATCH 10/10] Document sysfs entries, Nitin Gupta, (Mon Aug 9, 10:26 am)
Re: [PATCH 01/10] Replace ioctls with sysfs interface, Pekka Enberg, (Mon Aug 9, 11:34 am)
Re: [PATCH 03/10] Use percpu stats, Pekka Enberg, (Mon Aug 9, 11:44 am)
Re: [PATCH 04/10] Use percpu buffers, Pekka Enberg, (Mon Aug 9, 11:57 am)
Re: [PATCH 08/10] Some cleanups, Pekka Enberg, (Mon Aug 9, 12:02 pm)
Re: [PATCH 10/10] Document sysfs entries, Pekka Enberg, (Mon Aug 9, 12:02 pm)
Re: [PATCH 06/10] Block discard support, Pekka Enberg, (Mon Aug 9, 12:03 pm)
Re: [PATCH 06/10] Block discard support, Jens Axboe, (Mon Aug 9, 7:23 pm)
Re: [PATCH 03/10] Use percpu stats, Andrew Morton, (Mon Aug 9, 9:34 pm)
Re: [PATCH 04/10] Use percpu buffers, Nitin Gupta, (Mon Aug 9, 9:47 pm)
Re: [PATCH 06/10] Block discard support, Nitin Gupta, (Mon Aug 9, 9:54 pm)
Re: [PATCH 04/10] Use percpu buffers, Pekka Enberg, (Mon Aug 9, 10:05 pm)
Re: [PATCH 04/10] Use percpu buffers, Nitin Gupta, (Mon Aug 9, 10:32 pm)
Re: [PATCH 04/10] Use percpu buffers, Pekka Enberg, (Tue Aug 10, 12:36 am)
Re: [PATCH 06/10] Block discard support, Jens Axboe, (Tue Aug 10, 8:54 am)
Re: [PATCH 03/10] Use percpu stats, Nitin Gupta, (Wed Aug 11, 9:39 am)
Re: [PATCH 03/10] Use percpu stats, Andrew Morton, (Wed Aug 11, 10:18 am)
Re: [PATCH 03/10] Use percpu stats, Christoph Lameter, (Mon Aug 30, 9:20 am)
Re: [PATCH 03/10] Use percpu stats, Nitin Gupta, (Tue Aug 31, 1:31 pm)
Re: [PATCH 03/10] Use percpu stats, Eric Dumazet, (Tue Aug 31, 2:28 pm)
Re: [PATCH 03/10] Use percpu stats, Christoph Lameter, (Tue Aug 31, 2:35 pm)
Re: [PATCH 03/10] Use percpu stats, Eric Dumazet, (Tue Aug 31, 2:41 pm)
Re: [PATCH 01/10] Replace ioctls with sysfs interface, Dave Hansen, (Tue Aug 31, 4:06 pm)
Re: [PATCH 00/10] zram: various improvements and cleanups, Anton Blanchard, (Tue Aug 31, 8:32 pm)
Re: [PATCH 03/10] Use percpu stats, Anton Blanchard, (Tue Aug 31, 8:41 pm)
Re: [PATCH 03/10] Use percpu stats, Anton Blanchard, (Tue Aug 31, 8:51 pm)
Re: [PATCH 03/10] Use percpu stats, Christoph Lameter, (Wed Sep 1, 1:05 pm)
Re: [PATCH 03/10] Use percpu stats, Eric Dumazet, (Wed Sep 1, 1:38 pm)
Re: [PATCH 03/10] Use percpu stats, Christoph Lameter, (Wed Sep 1, 5:34 pm)
Re: [PATCH 03/10] Use percpu stats, Andrew Morton, (Fri Sep 17, 1:59 pm)
Re: OOM panics with zram, Nitin Gupta, (Sun Oct 3, 11:41 am)
Re: OOM panics with zram, Dave Hansen, (Sun Oct 3, 12:27 pm)
Re: OOM panics with zram, Nitin Gupta, (Sun Oct 3, 12:40 pm)
Re: OOM panics with zram, Ed Tomlinson, (Mon Oct 4, 4:08 am)
Re: OOM panics with zram, Greg KH, (Tue Oct 5, 4:43 pm)
Re: OOM panics with zram, Nitin Gupta, (Tue Oct 5, 7:29 pm)
Re: OOM panics with zram, Greg KH, (Tue Oct 5, 7:36 pm)
Re: OOM panics with zram, Nitin Gupta, (Tue Oct 5, 9:30 pm)
Re: OOM panics with zram, Pekka Enberg, (Wed Oct 6, 12:38 am)
Re: OOM panics with zram, Greg KH, (Wed Oct 6, 7:02 am)
Re: OOM panics with zram, Greg KH, (Wed Oct 6, 7:03 am)
Re: OOM panics with zram, Pekka Enberg, (Wed Oct 6, 7:16 am)
Re: OOM panics with zram, Nitin Gupta, (Wed Oct 6, 7:53 am)