[lc-checkins] CVS: linux/fs buffer.c,1.12,1.13
Status: Beta
Brought to you by:
nitin_sf
|
From: Rodrigo S. de C. <rc...@us...> - 2002-04-28 20:52:06
|
Update of /cvsroot/linuxcompressed/linux/fs In directory usw-pr-cvs1:/tmp/cvs-serv2510/fs Added Files: buffer.c Log Message: This version features a first non-functional version of compressed cache automatic automatic adaptivity to system behaviour. It also has many changes aiming to fix the performance drop we have in linux kernel compilation test (check statistics for 0.23pre1 on our web site). Our analysis isn't complete and more changes are likely to go since a huge percentage of CPU is still not being used. Anyway, the current changes improve compressed cache a lot, mainly compressed cache support for page cache, and it already works much better in that scenario. Some detailed changes: - Configuration options changes. Now we only make compressed cache option available if SMP is turned off. Page cache support is an option, that is disabled by default. There's also an option to enable adaptivity, which is currently non-functional. - There's no option in kernel configuration to select initial compressed cache size any longer. It can be selected only by kernel parameter. This parameter won't be available when adaptivity option is enabled (since the system will configure compressed cache automatically). In this case, initial compressed cache size is 10% of total memory size. - Functions cleanup: all algorithms functions and related stuff are now in proc.c file; statistics functions were rewritten and are simpler. - New statistics are collected by the system, like a per-cache analysis (swap and page cache). Statistics is much more complete and nicer. - Now there are functions that force the VM to skip writing dirty buffer, shrinking slab cache, dcache and icache, since we want the system to put much more pressure on pages from page and swap cache in order to have these kind of pages compressed. - Pages are removed from compressed cache in swapin if the process has write permissions. Since the pte will be set dirty, the page will be surely compressed again, so why keep it in the compressed cache? - If we are swapping in and the page is not present in swap cache, we no longer read a cluster of pages from swap device if the page is in compressed cache. This conceptual bug forced us to read many pages from swap device if the page was compressed in our cache, what's wrong. The same way, that happened when a file entry was faulted in and we service this fault. Beforehand we were forcing a cluster read even if the page were present in compressed cache. |