android_kernel_motorola_sm6225/fs/f2fs
Jaegeuk Kim 216fbd6443 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_IPU_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>
2013-12-23 10:18:07 +09:00
..
acl.c f2fs: fix a deadlock during init_acl procedure 2013-10-28 13:39:09 +09:00
acl.h f2fs: fix a deadlock during init_acl procedure 2013-10-28 13:39:09 +09:00
checkpoint.c f2fs: refactor bio->rw handling 2013-12-23 10:18:06 +09:00
data.c f2fs: fix the location of tracepoint 2013-12-23 10:18:06 +09:00
debug.c f2fs: replace the debugfs_root with f2fs_debugfs_root 2013-12-23 10:18:05 +09:00
dir.c f2fs: add unlikely() macro for compiler optimization 2013-12-23 10:18:06 +09:00
f2fs.h f2fs: introduce sysfs entry to control in-place-update policy 2013-12-23 10:18:07 +09:00
file.c f2fs: add unlikely() macro for compiler more aggressively 2013-12-23 10:18:06 +09:00
gc.c f2fs: refactor bio->rw handling 2013-12-23 10:18:06 +09:00
gc.h f2fs: optimize gc for better performance 2013-09-05 13:50:32 +09:00
hash.c f2fs: unify string length declarations and usage 2012-12-28 11:27:53 +09:00
inode.c f2fs: add an option to avoid unnecessary BUG_ONs 2013-10-29 15:44:38 +09:00
Kconfig f2fs: introduce CONFIG_F2FS_CHECK_FS for BUG_ON control 2013-10-29 15:43:01 +09:00
Makefile f2fs: update Kconfig and Makefile 2012-12-11 13:43:42 +09:00
namei.c f2fs: fix writing incorrect orphan blocks 2013-10-08 10:19:28 +09:00
node.c f2fs: refactor bio->rw handling 2013-12-23 10:18:06 +09:00
node.h f2fs: fix the use of XATTR_NODE_OFFSET 2013-08-09 14:57:56 +09:00
recovery.c f2fs: add unlikely() macro for compiler more aggressively 2013-12-23 10:18:06 +09:00
segment.c f2fs: introduce sysfs entry to control in-place-update policy 2013-12-23 10:18:07 +09:00
segment.h f2fs: introduce sysfs entry to control in-place-update policy 2013-12-23 10:18:07 +09:00
super.c f2fs: introduce sysfs entry to control in-place-update policy 2013-12-23 10:18:07 +09:00
xattr.c f2fs: add unlikely() macro for compiler more aggressively 2013-12-23 10:18:06 +09:00
xattr.h f2fs: support the inline xattrs 2013-08-26 20:15:23 +09:00