Hi,<br><br>It's now 4 weeks for me with Compressed Caching under SoC.<br><br>Progress this week:<br><br>I finally got replacing page with 'chunk_head' working :)<br>[This work is in 'flux' branch of git://dev.laptop.org/projects/linux-mm-cc]
<br>I'll merge this with master branch when I solve problems<br>mentioned at last.<br><br>When page is to be reclaimed, it replaces corres.<br>entry in radix tree with chunk_head which in turn<br>points to copy of original page.
<br><br>Some radix functions in lib/radix-tree.c were added<br>to do quick update-if-exists operations. These are<br>almost copy-paste of existing functions but were<br>required anyway.<br><br>When lookup is performed, this chunk_head is again
<br>replaced with original page.<br><br>Currently, this is done only for pages that are in vswap.<br>But, the approch is general enough to do this for page-cache<br>pages too (with just few additional lines in should_add_to_ccache()
<br>-- though there may be some other issues).<br><br>Also, fixed some random problems like when display of<br>/proc/swaps.<br><br><br>But, there is a *big* simplification:<br><br>In all lookup functions, I've replaced read_lock_irq()
<br>with write_lock_irq(). This makes sure that only one<br>of these lookup functions execute at a time. This<br>simplifies locking scheme for ccache work a lot but<br>this is obviously not acceptable for *real* thing.<br>
<br>So, this is exactly is my next TODO:<br>get them back as read_lock_irq()s and get ready for<br>kernel fireworks :) Also, all the important,<br>compression structure implementation (as on Wiki).<br><br>Project Wiki: <a href="http://linux-mm.org/CompressedCaching">
linux-mm.org/CompressedCaching</a><br>Mailing list: <a href="mailto:linux-mm-cc@laptop.org">linux-mm-cc@laptop.org</a>, <a href="mailto:linuxcompressed-devel@sourceforge.net">linuxcompressed-devel@sourceforge.net</a><br>(I will soon leave anything @
<a href="http://sf.net">sf.net</a>, it's CVS is already way out-of-sync)<br><br><br>Best Regards,<br>Nitin Gupta<br><br>