Atrocious icache/dcache in 2.4.2
Subsystems (4)
Hi,
Here is a patch that prunes unused, clean inodes from the icache faster. I have previously checked out cleaning the unused dirty icache entries from the the same place in kswapd but did not find it to be much a win.
This code does the following. It factors prune_icache to use,prune_unused_icache to actually prune the list. This makes it
simple to add a shrink_unused_icache_memory routine which gets plugged into the kswapd loop. The result is the icache is kept smaller.
fast_prune.diff
-----
include/linux/dcache.h +1 -0
@@ -176,6 +176,7 @@/* icache memory management (defined in linux/fs/inode.c) */ extern void shrink_icache_memory (int ,int ); +extern void shrink_unused_icache_memory (int );extern void prune_icache (int );/* only used at mount-time */
mm/vmscan.c +5 -0
@@ -953,6 +953,11 @@*/ refill_inactive_scan (DEF_PRIORITY ,0 ); +/* +* Free unused inodes. +*/ +shrink_unused_icache_memory (GFP_KSWAPD ); +/* Once a second, recalculate some VM stats. */ if (time_after (jiffies, recalc +HZ )) { recalc = jiffies;
fs/inode.c +33 -11
74 lines not on this page · raw message
-----
Comments?
Ed Tomlinson <[email protected]>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/