[lc-devel] [PATCH] 2.4.17-0.20
Status: Beta
Brought to you by:
nitin_sf
From: Rodrigo S. de C. <rc...@im...> - 2001-12-23 14:04:23
|
Hi, A new major version is out there. After 6 pre versions, I think it's time to release the 0.20 version before adaptivity development. This version features mostly code cleanup and minor changes. For example, we have a directory in /proc/sys/vm/ where some parameters can changed (some of them, like size, are not working so far). Now you can choose the compressed cache size by a kernel parameter (compsize=) and also by a configuration option in the "General Setup" menu. Some bugs that showed up with the new kernel versions (2.4.{9,10,16,17}) were fixed as well. A great feature is the lru ordering for compressed cache pages, fixing up a conceptual flaw that existed for a long time in our code. This implementation allowed us remove the second avl tree, indexed by freeable space, decreasing the complexity of some functions. To conclude, we started the preparation for adaptivity by changing the comp_cache array to slab cache allocation. Adaptivity (only manual) is our next task. This patch is not working under User-Mode-Linux, at least until 2.4.16-2um. And by the way, a version for 2.4.16 is also available on the downloads page. Check the detailed changelog and notes in the links below. Download: http://prdownloads.sourceforge.net/linuxcompressed/patch-comp-cache-2.4.17-0.20.bz2 Changelog: http://sourceforge.net/project/shownotes.php?release_id=66614 final: - comp_cache array removed. Now all comp_cache struct will be allocated by slab cache for the adaptivity. - reverted changes regarding vswap_add_freeable which broke the code. Only part of the function should have been deleted. vswap_add_freeable has been renamed to remove_vswap. pre6: - removed the references to the freeable avl tree. Currently we search for a compressed cache page based upon the LRU ordering, no its freeable space any longer. pre5: - compressed pages in compressed cache are swapped out in the order they were added to compressed cache, therefore following the order the pages were evicted by the VM system (LRU). pre4: - second batch of changes for the removal of #ifdefs that uglify the code. - compressed cache code in unuse_pte was removed because it does not make any sense currently. pre3: - first batch of changes to remove #ifdefs and make code cleaner. - it follows Documentation/SubmittingPatches document. pre2 (2.4.16): - 0.20pre2 version updated from 2.4.10 to 2.4.16. - code was rewritten in swapfile.c to work with the new swap file functions (swap_free, swap_duplicate, swap_info_get, swap_info_put, etc) pre2 (2.4.10): - In 2.4.10 the MAX_SWAPFILES was changed, what caused some problems for our code in architectures like UML, which handles swap entry addresses differently than in i386. That way, we cannot keep using MAX_SWAPFILES for our swap type unless we decrease this variable. In this case, we decreased the variable to 31 and so we can use 31 as COMP_CACHE_SWP_TYPE without worrying about arch-dependent configuration. Nevertheless, we are limited to 31 swap files, not 32 as in vanilla. pre1: - Fix for a bug which would cause an error if you tried to compile without CONFIG_COMP_SWAP (swap out pages in compressed form). - Algorithms now are switched by echoing to /proc/sys/vm/comp_cache/algorithm, not any longer to /proc/comp_cache. "size" is already present in the directory, but it does not work so far. In the future it will be able to choose maximum compressed cache size on the fly. - By the way, /proc/comp_cache is not available. It has been renamed to comp_cache_stat and its code is in fs/proc/proc_misc.c with all other proc entries. - You can choose the maximum size of compressed size by entering the value in the kernel configuration or by a kernel parameter (compsize=). The latter has priority over the former, in the case both are define. The parameter is in memory pages unit. Therefore there's no need to modify a variable in order to change the maximum size of compressed cache any longer. - mm/comp_cache/proc.c has been removed. Some remaining functions that were placed in this file are in aux.c. Regards, -- Rodrigo S. de Castro <rc...@im...> |