Re: shrink_caches inconsistancy

From: Craig Christophel (merlin@transgeek.com)
Date: Thu Dec 06 2001 - 10:11:45 EST


Well here is the fixed patch with __GFP_FS check removed from dqcache.
Thanks for the note.

Craig

> > Possibly incorrect __GFP_FS check added to the dqcache function. but
> > again consistancy is my goal.
>
> This check really isn't needed for shrink_dqcache() function. This
> function can never recurse into fs so there's no need to have __GFP_FS set.

diff -urN linux/fs/dcache.c linux.mt/fs/dcache.c
--- linux/fs/dcache.c Wed Dec 5 18:22:42 2001
+++ linux.mt/fs/dcache.c Wed Dec 5 18:22:26 2001
@@ -543,7 +543,7 @@
  * too much.
  *
  * Priority:
- * 0 - very urgent: shrink everything
+ * 1 - very urgent: shrink everything
  * ...
  * 6 - base-level: try to shrink a bit.
  */
diff -urN linux/fs/dquot.c linux.mt/fs/dquot.c
--- linux/fs/dquot.c Wed Dec 5 18:22:42 2001
+++ linux.mt/fs/dquot.c Thu Dec 6 10:09:24 2001
@@ -407,11 +407,28 @@
                head = free_dquots.prev;
        }
 }
+/*
+ * This is called from kswapd when we think we need some
+ * more memory, but aren't really sure how much. So we
+ * carefully try to free a _bit_ of our dqcache, but not
+ * too much.
+ *
+ * Priority:
+ * 1 - very urgent: shrink everything
+ * ...
+ * 6 - base-level: try to shrink a bit.
+ */

 int shrink_dqcache_memory(int priority, unsigned int gfp_mask)
 {
+ int count = 0;
+
+
        lock_kernel();
- prune_dqcache(nr_free_dquots / (priority + 1));
+
+ count = nr_free_dquots / priority;
+
+ prune_dqcache(count);
        unlock_kernel();
        kmem_cache_shrink(dquot_cachep);
        return 0;
diff -urN linux/fs/inode.c linux.mt/fs/inode.c
--- linux/fs/inode.c Wed Dec 5 18:22:42 2001
+++ linux.mt/fs/inode.c Wed Dec 5 18:22:26 2001
@@ -707,7 +707,17 @@
        if (goal)
                schedule_task(&unused_inodes_flush_task);
 }
-
+/*
+ * This is called from kswapd when we think we need some
+ * more memory, but aren't really sure how much. So we
+ * carefully try to free a _bit_ of our icache, but not
+ * too much.
+ *
+ * Priority:
+ * 1 - very urgent: shrink everything
+ * ...
+ * 6 - base-level: try to shrink a bit.
+ */
 int shrink_icache_memory(int priority, int gfp_mask)
 {
        int count = 0;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Dec 07 2001 - 21:00:33 EST