linux_dsm_epyc7002/fs/f2fs
Gu Zheng e234088758 f2fs: avoid wait if IO end up when do_checkpoint for better performance
Previously, do_checkpoint() will call congestion_wait() for waiting the pages
(previous submitted node/meta/data pages) to be written back.
Because congestion_wait() will set a regular period (e.g. HZ / 50 ) for waiting, and
no additional wake up mechanism was introduced if IO ends up before regular period costed.
Yuan Zhong found there is a situation that after the pages have been written back,
but the checkpoint thread still wait for congestion_wait to exit.

So here we store checkpoint task into f2fs_sb when doing checkpoint, it'll wait for IO completes
if there's IO going on, and in the end IO path, wake up checkpoint task when IO ends up.

Thanks to Yuan Zhong's pre work about this problem.

Reported-by: Yuan Zhong <yuan.mark.zhong@samsung.com>
Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2013-10-18 09:44:14 +09:00
..
acl.c f2fs: support xattr security labels 2013-06-11 16:01:03 +09:00
acl.h f2fs: adjust kernel coding style 2012-12-11 13:43:42 +09:00
checkpoint.c f2fs: avoid wait if IO end up when do_checkpoint for better performance 2013-10-18 09:44:14 +09:00
data.c f2fs: use rw_sem instead of fs_lock(locks mutex) 2013-10-07 11:33:05 +09:00
debug.c f2fs: use seq_puts()/seq_putc() rather than seq_printf() where possible 2013-07-30 15:17:03 +09:00
dir.c f2fs: fix handling orphan inodes 2013-07-30 15:17:03 +09:00
f2fs.h f2fs: avoid wait if IO end up when do_checkpoint for better performance 2013-10-18 09:44:14 +09:00
file.c f2fs: use rw_sem instead of fs_lock(locks mutex) 2013-10-07 11:33:05 +09:00
gc.c f2fs: optimize the victim searching loop slightly 2013-09-24 17:45:48 +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: fix to store and retrieve i_rdev correctly 2013-10-18 09:43:38 +09:00
Kconfig f2fs: support xattr security labels 2013-06-11 16:01:03 +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: merge more bios of node block writes 2013-09-05 10:17:19 +09:00
node.h f2fs: fix the use of XATTR_NODE_OFFSET 2013-08-09 14:57:56 +09:00
recovery.c f2fs: use rw_sem instead of fs_lock(locks mutex) 2013-10-07 11:33:05 +09:00
segment.c f2fs: avoid wait if IO end up when do_checkpoint for better performance 2013-10-18 09:44:14 +09:00
segment.h f2fs: avoid allocating failure in bio_alloc 2013-09-24 17:45:48 +09:00
super.c f2fs: introduce function read_raw_super_block() 2013-10-18 09:44:13 +09:00
xattr.c f2fs: use rw_sem instead of fs_lock(locks mutex) 2013-10-07 11:33:05 +09:00
xattr.h f2fs: support the inline xattrs 2013-08-26 20:15:23 +09:00