Update of /cvsroot/linuxcompressed/linux/mm
In directory usw-pr-cvs1:/tmp/cvs-serv17200/mm
Modified Files:
filemap.c vmscan.c
Log Message:
Some bug fixes:
- Cached memory accounting fix
Details:
http://sourceforge.net/tracker/index.php?func=detail&aid=553794&group_id=13472&atid=113472
- Remove all comp_cache_skip* functions.
At least temporarily, there were removed because I am not sure what are the
consequences of skipping doing some stuff. For example, skip writing dirty
buffers turns out to be a horrible choice for dbench, which gets a terrible
performance.
- Fixes a potential oops in compressed_pages() to wrong return value from
get_comp_cache_page().
Details:
http://sourceforge.net/tracker/index.php?func=detail&aid=553878&group_id=13472&atid=113472
- Makes compressed cache work correctly if support for page cache is disabled.
Details:
http://sourceforge.net/tracker/index.php?func=detail&aid=553408&group_id=13472&atid=113472
- Fixes a kernel BUG() at vmscan.c:366 (active page on inactive list)
Details:
http://sourceforge.net/tracker/index.php?func=detail&aid=551996&group_id=13472&atid=113472
Index: filemap.c
===================================================================
RCS file: /cvsroot/linuxcompressed/linux/mm/filemap.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -r1.24 -r1.25
*** filemap.c 28 Apr 2002 20:51:34 -0000 1.24
--- filemap.c 8 May 2002 20:24:34 -0000 1.25
***************
*** 162,166 ****
if (mapping->host)
mark_inode_dirty_pages(mapping->host);
! #ifdef CONFIG_COMP_PAGE_CACHE
if (PageTestandClearCompCache(page))
invalidate_comp_cache(mapping, page->index);
--- 162,166 ----
if (mapping->host)
mark_inode_dirty_pages(mapping->host);
! #ifdef CONFIG_COMP_CACHE
if (PageTestandClearCompCache(page))
invalidate_comp_cache(mapping, page->index);
Index: vmscan.c
===================================================================
RCS file: /cvsroot/linuxcompressed/linux/mm/vmscan.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -r1.32 -r1.33
*** vmscan.c 2 May 2002 16:31:37 -0000 1.32
--- vmscan.c 8 May 2002 20:24:36 -0000 1.33
***************
*** 511,520 ****
/* compress it if it's a clean page that has not been
* compressed in a previous iteration */
! if (compress_clean_page(page, gfp_mask)) {
! list_del(entry);
! list_add_tail(entry, &inactive_list);
! max_scan++;
continue;
- }
/* point of no return */
--- 511,516 ----
/* compress it if it's a clean page that has not been
* compressed in a previous iteration */
! if (compress_clean_page(page, gfp_mask))
continue;
/* point of no return */
***************
*** 584,597 ****
unsigned long ratio;
- /* if compressed cache is enable, we should want to have much
- * more pressure on swap/page cache than on other caches */
- if (comp_cache_skip_slab_shrunk())
- goto skip_slab_cache;
-
nr_pages -= kmem_cache_reap(gfp_mask);
if (nr_pages <= 0)
return 0;
- skip_slab_cache:
nr_pages = chunk_size;
/* try to keep the active list 2/3 of the size of the cache */
--- 580,587 ----
***************
*** 603,609 ****
return 0;
- if (comp_cache_skip_dicache_shrunk())
- return nr_pages;
-
shrink_dcache_memory(priority, gfp_mask);
shrink_icache_memory(priority, gfp_mask);
--- 593,596 ----
|