LinuxMM:

[:NitinGupta:Nitin Gupta]

MailTo(nitingupta.mail AT gmail DOT com)


CompressedCaching

[http://dev.laptop.org/git.do?p=projects/linux-mm-cc;a=summary Git (WebView)]

This page contains list of patches and other relatd code as it is being developed for Compressed Caching (for 2.6.x kernels) project. You can always find most up-to-date code at Project Git repository (git://dev.laptop.org/projects/linux-mm-cc).


Kernel changes to support Compressed Caching:

(These are old patches kept here for reference. Much water has passed since then. For most up-to-date code checkout the Git repository).


Compression algorithms to kernel mode:

Kernel module to test de/compression algorithms (WKdm, WK4x4, LZO): attachment:compress-test.tar.gz

There are basically three main algorithms that are well studied w.r.t compressed caching by previous works -- WKdm, WK4x4, LZO.

Of these, WKdm, WK4x4 are designed to handle anon pages (non filesystem pages) while LZO is more suitable for filesystem data. (Also, in general, compression speed is in order: WKdm > WK4x4 > LZO, while compression factor order is, in general, reverse).

Now, all three algos are ported to kernel space - WKdm, WK4x4 and LZO. You can test them all using this module. It creates 3 /proc entries: /proc/compress-test/{compress, decompress, algo_idx} as described below: (for some detail see README with this module)

In short:

Write to /proc/compress-test entries:

1. compress: compress data witten to it and store in internal buffer.

2. algo_idx: write index of algo you want to test (0: WKdm, 1: WK4x4, 2: LZO)

Read from /proc/compress-test entries:

1. compress: show original and compressed size (TODO: add other stats like time taken too)

2. decompress: decompress compressed data stored in internal buffer.

3. algo_idx: shows list of algos supported with their index.

Also commited all these algos to GIT repo: git://dev.laptop.org/projects/linux-mm-cc


Compression Structure Implementation:

attachment:storage-test.tar.gz : This module implements compression structure as described on CompressedCaching.

Please see README for usage.

In short:

Interface is via /proc:

/proc/storage-test/{readpage, writepage, show_structure}

1. writepage: write a page on this to compress and store it in ccache.

2. readpage: write 'id' (see README) of page you want.

3. show_structure: read to show current snapshot of ccache storage.


LinuxMM: CompressedCaching/Code (last edited 2006-07-20 14:10:28 by triband-del-59)