Re: [PATCH 1/3]: compressed RAM block device

From: Nitin Gupta
Date: Wed Mar 18 2009 - 08:39:30 EST


Nick Piggin wrote:
On Tuesday 17 March 2009 22:36:46 Nitin Gupta wrote:
drivers/block/Kconfig | 22 +
drivers/block/Makefile | 1 +
drivers/block/compcache.c | 995
+++++++++++++++++++++++++++++++++++++++++++++ drivers/block/compcache.h | 160 ++++++++
4 files changed, 1178 insertions(+), 0 deletions(-)

Creates RAM based block device (ramzswap0) which can be used as swap
device. Pages swapped to this are compressed and stored in memory itself.

The module is called compcache.ko. It depends on:
- xvmalloc.ko: memory allocator
- lzo_compress.ko
- lzo_decompress.ko

See Documentation/blockdev/compcache.txt for usage details.

Project home: http://code.google.com/p/compcache/


I wonder how hard it would be to make the compression code
use an arbitrary file or device for the storage backend rather
than make a new block device? Then you could make a new ram
block device that can swap its pages out (or even extend brd.c
with that functionality, or use loop on tmpfs etc).


Its already done as mentioned in Documentation/blockdev/compcache.txt
(patch 3/3) but I should have added it here also: compcache accepts
"backing_dev" parameter for backing swap partition - this allows us to
forward any R/W request to backing swap device. Currently only poorly
compressible pages (compress length > PAGE_SIZE/2) are forwarded to
backing_dev.

Thanks,
Nitin




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