[OLPC-devel] Announce: Compressed cache alpha-005 release

Nitin Gupta nitingupta.mail at gmail.com
Tue Sep 5 18:49:03 EDT 2006


------------
Project: Compressed Caching for Linux (2.6.x kernels)
Git (web): http://dev.laptop.org/git.do?p=projects/linux-mm-cc
Git (git): git://dev.laptop.org/projects/linux-mm-cc
Home Page: http://linuxcompressed.sourceforge.net
------------


Hi all!

This release brings a Major new addition to compressed caching
feature (kernel 2.6.18-rc6) -- Now, both page-cache (clean &
dirty) pages and swap-cache pages are compressed!

Also fixed a lot of other bugs!


* Usage:
It creates two /proc entries:
/proc/sys/vm/{max_anon_cc_size,max_fs_backed_cc_size}

Use these to set compressed cache size (in unit of no. of
pages) for anonymous(swap-cache) and
filesystem-backed(page-cache) pages respectively.


* I tested this as:
RAM: 128MB
ccache for anon pages - size: 5MB (1280 pages)
ccache for page cache pages - size: 10MB (2560 pages)

Launched openoffice-writer, gimp, firefox, kate, konsole. Closed
these, re-opened, open some web-pages, some file in writer,
close all, open all again --- it didn't crash on _my_ system.
(Focusing on correctness for now!)

If you test it and find _any_ problems, please mail me or on
mailing list. Thanks!


* NOTES
-- page-cache and swap-cache compression can be separately
turned on. So, you can do separate tests for these by keeping
other to 0 size.

-- Page-cache pages that could now be added to ccache are let
goto disks (or simply freed for clean pages).

-- Pages are cyclically compressed using WKdm, WK4x4 and LZO.
You can easily change this behavior by changing single line in
guess_algo() in mm/ccache.c (see function comments).

-- You can further filter (like allowing only dirty page
cache pages) which pages are compressed by simply adding
criteria in should_add_to_ccache() in mm/ccache.c


* TODO
-- Export statistics like current anon and file-system backed
ccache sizes (_whatever_ statistics are required to get useful
benchmark figures).

-- Analyze more properly conditions of _very_ low memory
conditions like what happens if OOM killer kills a process
whose pages are being compressed!

-- Write in detail what exactly remains, present problems: also
list requirements for long term goals like dynamic ccache
resizing support.

-- Code cleanups: like use proper log level for info/warning or
debug messages. Don't use pr_info() throughout.


If you test it please mail me the results! Thanks!


* Patch (for kernel 2.6.18-rc6):
http://prdownloads.sourceforge.net/linuxcompressed/patch-ccache-
alpha-005-2.6.18-rc6?download


Cheers,
Nitin



More information about the Devel mailing list