linux/fs/f2fs
Jaegeuk Kim fb5566da91 f2fs: improve write performance under frequent fsync calls
When considering a bunch of data writes with very frequent fsync calls, we
are able to think the following performance regression.

N: Node IO, D: Data IO, IO scheduler: cfq

Issue    pending IOs
	 D1 D2 D3 D4
 D1         D2 D3 D4 N1
 D2            D3 D4 N1 N2
 N1            D3 D4 N2 D1
 --> N1 can be selected by cfq becase of the same priority of N and D.
     Then D3 and D4 would be delayed, resuling in performance degradation.

So, when processing the fsync call, it'd better give higher priority to data IOs
than node IOs by assigning WRITE and WRITE_SYNC respectively.
This patch improves the random wirte performance with frequent fsync calls by up
to 10%.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2014-01-08 11:16:20 +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: convert max_orphans to a field of f2fs_sb_info 2013-12-26 20:37:52 +09:00
data.c f2fs: handle errors correctly during f2fs_reserve_block 2014-01-06 16:42:21 +09:00
debug.c f2fs: add the number of inline_data files to status info 2014-01-06 16:42:20 +09:00
dir.c f2fs: handle errors correctly during f2fs_reserve_block 2014-01-06 16:42:21 +09:00
f2fs.h f2fs: improve write performance under frequent fsync calls 2014-01-08 11:16:20 +09:00
file.c f2fs: improve write performance under frequent fsync calls 2014-01-08 11:16:20 +09:00
gc.c f2fs: remove the rw_flag domain from f2fs_io_info 2013-12-23 10:18:07 +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
inline.c f2fs: avoid to read inline data except first page 2014-01-06 16:42:22 +09:00
inode.c f2fs: add the number of inline_data files to status info 2014-01-06 16:42:20 +09:00
Kconfig f2fs: introduce CONFIG_F2FS_CHECK_FS for BUG_ON control 2013-10-29 15:43:01 +09:00
Makefile f2fs: key functions to handle inline data 2013-12-26 20:40:09 +09:00
namei.c f2fs: avoid to set wrong pino of inode when rename dir 2013-12-23 10:42:51 +09:00
node.c f2fs: improve write performance under frequent fsync calls 2014-01-08 11:16:20 +09:00
node.h f2fs: update several comments 2013-12-23 10:26:03 +09:00
recovery.c f2fs: add inline_data recovery routine 2014-01-06 16:42:20 +09:00
segment.c f2fs: improve write performance under frequent fsync calls 2014-01-08 11:16:20 +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