lkml.org 
[lkml]   [2009]   [Aug]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 4/4] compcache: documentation
From
On Mon, Aug 24, 2009 at 10:08 AM, Nitin Gupta<ngupta@vflare.org> wrote:
> Short guide on how to setup and use ramzswap.
>
> Signed-off-by: Nitin Gupta <ngupta@vflare.org>
> ---
>
>  Documentation/blockdev/00-INDEX     |    2 +
>  Documentation/blockdev/ramzswap.txt |   52 +++++++++++++++++++++++++++++++++++
>  2 files changed, 54 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/blockdev/00-INDEX b/Documentation/blockdev/00-INDEX
> index c08df56..c1cb074 100644
> --- a/Documentation/blockdev/00-INDEX
> +++ b/Documentation/blockdev/00-INDEX
> @@ -16,3 +16,5 @@ paride.txt
>        - information about the parallel port IDE subsystem.
>  ramdisk.txt
>        - short guide on how to set up and use the RAM disk.
> +ramzswap.txt
> +       - short guide on how to setup compressed in-memory swap device.
> diff --git a/Documentation/blockdev/ramzswap.txt b/Documentation/blockdev/ramzswap.txt
> new file mode 100644
> index 0000000..463dd2d
> --- /dev/null
> +++ b/Documentation/blockdev/ramzswap.txt
> @@ -0,0 +1,52 @@
> +ramzswap: Compressed RAM based swap device
> +-------------------------------------------
> +
> +Project home: http://compcache.googlecode.com/
> +
> +* Introduction
> +
> +It creates RAM based block devices which can be used (only) as swap disks.
> +Pages swapped to these devices are compressed and stored in memory itself.
> +See project home for use cases, performance numbers and a lot more.
> +
> +It consists of three modules:
> + - xvmalloc.ko: memory allocator

I've seen your case for a custom allocator, but why can't we

1) Refactor slob and use it
2) Do we care about the optimizations in SLUB w.r.t. scalability in
your module? If so.. will xvmalloc meet those requirements?

> + - ramzswap.ko: virtual block device driver
> + - rzscontrol userspace utility: to control individual ramzswap devices
> +
> +* Usage
> +
> +Following shows a typical sequence of steps for using ramzswap.
> +
> +1) Load Modules:
> +       modprobe ramzswap NUM_DEVICES=4
> +       This creates 4 (uninitialized) devices: /dev/ramzswap{0,1,2,3}
> +       (NUM_DEVICES parameter is optional. Default: 1)
> +
> +2) Initialize:
> +       Use rzscontrol utility to configure and initialize individual
> +       ramzswap devices. Example:
> +       rzscontrol /dev/ramzswap2 --init # uses default value of disksize_kb
> +
> +       *See rzscontrol manpage for more details and examples*
> +
> +3) Activate:
> +       swapon /dev/ramzswap2 # or any other initialized ramzswap device
> +
> +4) Stats:
> +       rzscontrol /dev/ramzswap2 --stats
> +
> +5) Deactivate:
> +       swapoff /dev/ramzswap2
> +
> +6) Reset:
> +       rzscontrol /dev/ramzswap2 --reset
> +       (This frees all the memory allocated for this device).

What level of compression have you observed? Any speed trade-offs?

Balbir
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2009-08-25 19:07    [W:0.130 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site