浏览代码

bcache: Document shrinker reserve better

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Kent Overstreet 12 年之前
父节点
当前提交
36c9ea9837
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      drivers/md/bcache/btree.c

+ 7 - 0
drivers/md/bcache/btree.c

@@ -622,6 +622,13 @@ static int bch_mca_shrink(struct shrinker *shrink, struct shrink_control *sc)
 	else if (!mutex_trylock(&c->bucket_lock))
 		return -1;
 
+	/*
+	 * It's _really_ critical that we don't free too many btree nodes - we
+	 * have to always leave ourselves a reserve. The reserve is how we
+	 * guarantee that allocating memory for a new btree node can always
+	 * succeed, so that inserting keys into the btree can always succeed and
+	 * IO can always make forward progress:
+	 */
 	nr /= c->btree_pages;
 	nr = min_t(unsigned long, nr, mca_can_free(c));