f2fs: introduce f2fs_issue_flush to avoid redundant flush issue
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Wed, 2 Apr 2014 06:34:36 +0000 (15:34 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Mon, 7 Apr 2014 00:50:58 +0000 (09:50 +0900)
commit6b4afdd794783fe515b50838aa36591e3feea990
tree5f35f32e27db8deaf248cf1e7a4930aab0822a73
parentce23447fe5764391025a67c20c97eaf5c6ac1ec3
f2fs: introduce f2fs_issue_flush to avoid redundant flush issue

Some storage devices show relatively high latencies to complete cache_flush
commands, even though their normal IO speed is prettry much high. In such
the case, it needs to merge cache_flush commands as much as possible to avoid
issuing them redundantly.
So, this patch introduces a mount option, "-o flush_merge", to mitigate such
the overhead.

If this option is enabled by user, F2FS merges the cache_flush commands and then
issues just one cache_flush on behalf of them. Once the single command is
finished, F2FS sends a completion signal to all the pending threads.

Note that, this option can be used under a workload consisting of very intensive
concurrent fsync calls, while the storage handles cache_flush commands slowly.

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