Skip to contentSkip to conversation

Atrocious icache/dcache in 2.4.2

PATCH Ed Tomlinson 1 participant 1 message Apr 28, 2001

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

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/