Re: Reducing inode cache usage on 2.4?

From: Andrew Morton
Date: Fri Dec 17 2004 - 20:23:59 EST

James Pearson <james-p@xxxxxxxxxxxxxxxxxx> wrote:
> It seems the inode cache has priority over cached file data.

It does. If the machine is full of unmapped clean pagecache pages the
kernel won't even try to reclaim inodes. This should help a bit:

--- 24/mm/vmscan.c~a 2004-12-17 17:18:31.660254712 -0800
+++ 24-akpm/mm/vmscan.c 2004-12-17 17:18:41.821709936 -0800
@@ -659,13 +659,13 @@ int fastcall try_to_free_pages_zone(zone

do {
nr_pages = shrink_caches(classzone, gfp_mask, nr_pages, &failed_swapout);
- if (nr_pages <= 0)
- return 1;
shrink_dcache_memory(vm_vfs_scan_ratio, gfp_mask);
shrink_icache_memory(vm_vfs_scan_ratio, gfp_mask);
shrink_dqcache_memory(vm_vfs_scan_ratio, gfp_mask);
+ if (nr_pages <= 0)
+ return 1;
if (!failed_swapout)
failed_swapout = !swap_out(classzone);
} while (--tries);

> What triggers the 'normal ageing round'? Is it possible to trigger this
> earlier (at a lower memory usage), or give a higher priority to cached data?

You could also try lowering /proc/sys/vm/vm_mapped_ratio. That will cause
inodes to be reaped more easily, but will also cause more swapout.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at