diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-06-02 22:24:24 (GMT) |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-06-07 17:18:08 (GMT) |
commit | e589c2c477b44e06754508a4e8b883e5ae7294aa (patch) | |
tree | ccdca1631cd37f7eef8286e0d12ddbe1e677cec8 /fs/f2fs/node.h | |
parent | 29710bcf9426c84bb6a9b1d94316895ed6143813 (diff) | |
download | linux-e589c2c477b44e06754508a4e8b883e5ae7294aa.tar.xz |
f2fs: control not to exceed # of cached nat entries
This is to avoid cache entry management overhead including radix tree.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/node.h')
-rw-r--r-- | fs/f2fs/node.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/f2fs/node.h b/fs/f2fs/node.h index 2c2a797..673ce92 100644 --- a/fs/f2fs/node.h +++ b/fs/f2fs/node.h @@ -27,6 +27,8 @@ /* control dirty nats ratio threshold (default: 10% over max nid count) */ #define DEF_DIRTY_NAT_RATIO_THRESHOLD 10 +/* control total # of nats */ +#define DEF_NAT_CACHE_THRESHOLD 100000 /* vector size for gang look-up from nat cache that consists of radix tree */ #define NATVEC_SIZE 64 @@ -126,6 +128,11 @@ static inline bool excess_dirty_nats(struct f2fs_sb_info *sbi) NM_I(sbi)->dirty_nats_ratio / 100; } +static inline bool excess_cached_nats(struct f2fs_sb_info *sbi) +{ + return NM_I(sbi)->nat_cnt >= DEF_NAT_CACHE_THRESHOLD; +} + enum mem_type { FREE_NIDS, /* indicates the free nid list */ NAT_ENTRIES, /* indicates the cached nat entry */ |