On Thu, Jun 23, 2016 at 09:17:08PM +0300, Nikolay Borisov wrote: > BTRFS is using a variety of slab caches to satisfy internal needs. > Those slab caches are always allocated with the SLAB_RECLAIM_ACCOUNT, > meaning allocations from the caches are going to be accounted as > SReclaimable. At the same time btrfs is not registering any shrinkers > whatsoever, thus preventing memory from the slabs to be shrunk. This > means those caches are not in fact reclaimable. > > To fix this remove the SLAB_RECLAIM_ACCOUNT on all caches apart from the > inode cache, since this one is being freed by the generic VFS super_block > shrinker. Also set the transaction related caches as SLAB_TEMPORARY, > to better document the lifetime of the objects (it just translates > to SLAB_RECLAIM_ACCOUNT). > > Signed-off-by: Nikolay Borisov <n.borisov.l...@gmail.com>
Reviewed-by: David Sterba <dste...@suse.com>