bcache: Document shrinker reserve better
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
This commit is contained in:
parent
e49c7c374e
commit
36c9ea9837
1 changed files with 7 additions and 0 deletions
|
@ -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));
|
||||
|
||||
|
|
Loading…
Reference in a new issue