[lc-devel] Announce: Compressed cache alpha-004 release
Status: Beta
Brought to you by:
nitin_sf
From: Nitin G. <nit...@gm...> - 2006-08-26 14:26:20
|
------------ Project: Compressed Caching for Linux 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 patch now fixes bug of decompressed pages not getting added to (active) LRU. This now allows compressed cache size to be set to some practical values (I tested it with size = 10MB). (Patch is for 2.6.18-rc4-git1) * Now, following issues remain: 1. Pages that are looked up just to be freed are also decompressed. They should instead simply be freed from ccache without the need of decompression. 2. Pages that expand on compression stay associated with vswap hence come for compression again and again. Maybe we should let such pages go to swap disk (if exists). * Some initial ideas for solution to above: Problem 1: Modify free_swap_and_cache() to not to call find_get_page(page) if page is in vswap. Instead call another custom function that simply frees compressed page itself. Problem 2: I think this can be solved by having another page flag (PG_uncompressible) which should be cleared when its freed. But adding yet another page flag doesn't look good (ccache already uses 2). So, trying to find some alternates. To let expanding pages go to swap disks, we need to re-modify PTEs to now point to a swp_entry_t corresponding to a real swap -- but this is a slow process! Solution? Now that the LRU problem is fixed, I will now look into benchmarks sent by Anderson for further refinement. Cheers, Nitin |