Evict meta data from ghost lists + l2arc headers
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 25 Jul 2013 17:39:31 +0000 (10:39 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 9 Aug 2013 17:06:12 +0000 (10:06 -0700)
commitfadd0c4da1e2ccd6014800d8b1a0fd117dd323e8
tree4127fe9f936a7631fef0a04e385d7b537f40f3c2
parent68121a03daf58a7d5b9351f110196b8ce806e1fa
Evict meta data from ghost lists + l2arc headers

When the meta limit is exceeded the ARC evicts some meta data
buffers from the mfu+mru lists.  Unfortunately, for meta data
heavy workloads it's possible for these buffers to accumulate
on the ghost lists if arc_c doesn't exceed arc_size.

To handle this case arc_adjust_meta() has been entended to
explicitly evict meta data buffers from the ghost lists in
proportion to what was evicted from the mfu+mru lists.

If this is insufficient we request that the VFS release
some inodes and dentries.  This will result in the release
of some dnodes which are counted as 'other' metadata.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
module/zfs/arc.c