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

From: Nick Piggin
Date: Wed Mar 18 2009 - 08:51:02 EST


On Wednesday 18 March 2009 23:38:30 Nitin Gupta wrote:
> 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

I meant more like compressing the data then passing it down to
another device. I guess you still need to make a block device to
operate on the requests, however, so it would get more complicated
because you'd need to pass your own down.... yeah it would probably
end up being just as complex and less efficient. Ignore me then :)


> forward any R/W request to backing swap device. Currently only poorly
> compressible pages (compress length > PAGE_SIZE/2) are forwarded to
> backing_dev.


--
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/