linux_dsm_epyc7002/fs/f2fs
Chao Yu 2ef79ecb5e f2fs: avoid stucking GC due to atomic write
f2fs doesn't allow abuse on atomic write class interface, so except
limiting in-mem pages' total memory usage capacity, we need to limit
atomic-write usage as well when filesystem is seriously fragmented,
otherwise we may run into infinite loop during foreground GC because
target blocks in victim segment are belong to atomic opened file for
long time.

Now, we will detect failure due to atomic write in foreground GC, if
the count exceeds threshold, we will drop all atomic written data in
cache, by this, I expect it can keep our system running safely to
prevent Dos attack.

In addition, his patch adds to show GC skip information in debugfs,
now it just shows count of skipped caused by atomic write.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-05-31 11:31:51 -07:00
..
acl.c posix_acl: convert posix_acl.a_refcount from atomic_t to refcount_t 2018-01-02 19:27:28 -08:00
acl.h f2fs: remove dead code f2fs_check_acl 2016-09-14 16:52:36 -07:00
checkpoint.c f2fs: clean up with is_valid_blkaddr() 2018-05-31 11:31:50 -07:00
data.c f2fs: avoid stucking GC due to atomic write 2018-05-31 11:31:51 -07:00
debug.c f2fs: avoid stucking GC due to atomic write 2018-05-31 11:31:51 -07:00
dir.c page cache: use xa_lock 2018-04-11 10:28:39 -07:00
extent_cache.c f2fs: remove redundant initialization of pointer 'p' 2018-03-13 08:05:45 +09:00
f2fs.h f2fs: avoid stucking GC due to atomic write 2018-05-31 11:31:51 -07:00
file.c f2fs: avoid stucking GC due to atomic write 2018-05-31 11:31:51 -07:00
gc.c f2fs: avoid stucking GC due to atomic write 2018-05-31 11:31:51 -07:00
gc.h f2fs: introduce sbi->gc_mode to determine the policy 2018-05-31 11:31:51 -07:00
hash.c f2fs: check entire encrypted bigname when finding a dentry 2017-05-04 11:44:35 -04:00
inline.c f2fs: remove unmatched zero_user_segment when convert inline dentry 2018-05-31 11:31:44 -07:00
inode.c f2fs: avoid stucking GC due to atomic write 2018-05-31 11:31:51 -07:00
Kconfig fs/*/Kconfig: drop links to 404-compliant http://acl.bestbits.at 2018-01-01 12:45:37 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
namei.c f2fs: fix to initialize i_current_depth according to inode type 2018-05-31 11:31:50 -07:00
node.c f2fs: clean up with is_valid_blkaddr() 2018-05-31 11:31:50 -07:00
node.h f2fs: don't track new nat entry in nat set 2018-03-27 20:10:29 -07:00
recovery.c f2fs: clean up with is_valid_blkaddr() 2018-05-31 11:31:50 -07:00
segment.c f2fs: avoid stucking GC due to atomic write 2018-05-31 11:31:51 -07:00
segment.h f2fs: avoid stucking GC due to atomic write 2018-05-31 11:31:51 -07:00
shrinker.c f2fs: obsolete ALLOC_NID_LIST list 2017-10-10 12:49:53 -07:00
super.c f2fs: keep migration IO order in LFS mode 2018-05-31 11:31:51 -07:00
sysfs.c f2fs: introduce sbi->gc_mode to determine the policy 2018-05-31 11:31:51 -07:00
trace.c f2fs: fix potential hangtask in f2fs_trace_pid 2018-01-02 19:27:30 -08:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: correct removexattr behavior for null valued extended attribute 2018-01-22 14:56:57 -08:00
xattr.h f2fs: guard macro variables with braces 2017-04-10 19:48:10 -07:00