]> git.baikalelectronics.ru Git - kernel.git/commit
f2fs: introduce free nid bitmap
authorChao Yu <yuchao0@huawei.com>
Thu, 23 Feb 2017 02:53:49 +0000 (10:53 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 27 Feb 2017 18:07:47 +0000 (10:07 -0800)
commitdf0fbda29206bdfc735bc9083cdaa5bc5bc7f5e4
treed1724cb87c35b2b83fa2b8d4da4a0e9ecd64e9af
parent2b86cd0f6799142dd63506638860faf5afa4a3aa
f2fs: introduce free nid bitmap

In scenario of intensively node allocation, free nids will be ran out
soon, then it needs to stop to load free nids by traversing NAT blocks,
in worse case, if NAT blocks does not be cached in memory, it generates
IOs which slows down our foreground operations.

In order to speed up node allocation, in this patch we introduce a new
free_nid_bitmap array, so there is an bitmap table for each NAT block,
Once the NAT block is loaded, related bitmap cache will be switched on,
and bitmap will be set during traversing nat entries in NAT block, later
we can query and update nid usage status in memory completely.

With such implementation, I expect performance of node allocation can be
improved in the long-term after filesystem image is mounted.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/debug.c
fs/f2fs/f2fs.h
fs/f2fs/node.c
include/linux/f2fs_fs.h