]> git.karo-electronics.de Git - karo-tx-linux.git/commit
f2fs: introduce sysfs entry to control in-place-update policy
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Thu, 7 Nov 2013 04:13:42 +0000 (13:13 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Thu, 12 Dec 2013 02:11:12 +0000 (11:11 +0900)
commitee0a7d097f4d6ee2f2dfa7466a4444cc4a7b016e
tree02ec82d9f9e71c02fd40c3a3d9e85a6870c314aa
parent8f692033eb758883ff1d43e6c69daacc9e285359
f2fs: introduce sysfs entry to control in-place-update policy

This patch introduces new sysfs entries for users to control the policy of
in-place-updates, namely IPU, in f2fs.

Sometimes f2fs suffers from performance degradation due to its out-of-place
update policy that produces many additional node block writes.
If the storage performance is very dependant on the amount of data writes
instead of IO patterns, we'd better drop this out-of-place update policy.

This patch suggests 5 polcies and their triggering conditions as follows.

[sysfs entry name = ipu_policy]

0: F2FS_IPU_FORCE       all the time,
1: F2FS_IPU_SSR         if SSR mode is activated,
2: F2FS_IPU_UTIL        if FS utilization is over threashold,
3: F2FS_IPU_SSR_UTIL    if SSR mode is activated and FS utilization is over
                        threashold,
4: F2FS_IPUT_DISABLE    disable IPU. (=default option)

[sysfs entry name = min_ipu_util]

This parameter controls the threshold to trigger in-place-updates.
The number indicates percentage of the filesystem utilization, and used by
F2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies.

For more details, see need_inplace_update() in segment.h.

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