The e2compress package for the 2.4.17 kernel, is based on the e2compr-0.4.39 patch provided by Peter Moulder for 2.2.18 kernel (http://www.netspace.net.au/~reiter/e2compr/index.html ).
We have introduced the structure of "cluster of pages", as there was the structure of "cluster of blocks" in previous version. The compression unit is now the cluster of pages.
The implementation is similar to the 2.2 version. If the needed page needed
is not present in memory, the cluster of pages which includes it
is decompressed.
But with 2.4 kernel, pages and blocks have a common area for data. If a
block is read from the device, the corresponding page is also modified.
Then to decompress a cluster we should not read the blocks in the already
used pages (decompressed) of the cluster. These pages can have been modified
or can be used by another process (mapping). If a page is UPTODATE, a new
one is allocated to decompress the cluster, and is freed after that.
We have only conducted some tests on i386 architecture, so be careful, especially on other architecture, and if pages are large and can belong to two different clusters.
For more information about e2compress go to http://www.netspace.net.au/~reiter/e2compr/index.html .
We also have adjusted the e2fsprogs patch for the version 1.25 .
Last modification : Mon Jun 3 14:18:33 MEST 2002