f2fs: throttle the memory footprint with a sysfs entry
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Wed, 19 Mar 2014 04:31:37 +0000 (13:31 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Thu, 20 Mar 2014 13:10:09 +0000 (22:10 +0900)
commitcdfc41c134d48c1923066bcfa6630b94588ad6bc
tree066af8a1d30379162ed299f3d30275f6e4809ab0
parent40bb0058c871c6ddcd4aff9fe2f5224e59aba47b
f2fs: throttle the memory footprint with a sysfs entry

This patch introduces ram_thresh, a sysfs entry, which controls the memory
footprint used by the free nid list and the nat cache.

Previously, the free nid list was controlled by MAX_FREE_NIDS, while the nat
cache was managed by NM_WOUT_THRESHOLD.
However, this approach cannot be applied dynamically according to the system.

So, this patch adds ram_thresh that users can specify the threshold, which is
in order of 1 / 1024.
For example, if the total ram size is 4GB and the value is set to 10 by default,
f2fs tries to control the number of free nids and nat caches not to consume over
10 * (4GB / 1024) = 10MB.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Documentation/ABI/testing/sysfs-fs-f2fs
Documentation/filesystems/f2fs.txt
fs/f2fs/f2fs.h
fs/f2fs/node.c
fs/f2fs/node.h
fs/f2fs/super.c