f2fs: add GC_URGENT_LOW mode in gc_urgent
Added a new gc_urgent mode, GC_URGENT_LOW, in which mode F2FS will lower the bar of checking idle in order to process outstanding discard commands and GC a little bit aggressively. Signed-off-by: Daeho Jeong <daehojeong@google.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Bu işleme şunda yer alıyor:

işlemeyi yapan:
Jaegeuk Kim

ebeveyn
6b12367da2
işleme
0e5e81114d
@@ -82,7 +82,7 @@ static int gc_thread_func(void *data)
|
||||
* invalidated soon after by user update or deletion.
|
||||
* So, I'd like to wait some time to collect dirty segments.
|
||||
*/
|
||||
if (sbi->gc_mode == GC_URGENT) {
|
||||
if (sbi->gc_mode == GC_URGENT_HIGH) {
|
||||
wait_ms = gc_th->urgent_sleep_time;
|
||||
down_write(&sbi->gc_lock);
|
||||
goto do_gc;
|
||||
@@ -176,7 +176,7 @@ static int select_gc_type(struct f2fs_sb_info *sbi, int gc_type)
|
||||
gc_mode = GC_CB;
|
||||
break;
|
||||
case GC_IDLE_GREEDY:
|
||||
case GC_URGENT:
|
||||
case GC_URGENT_HIGH:
|
||||
gc_mode = GC_GREEDY;
|
||||
break;
|
||||
}
|
||||
@@ -211,7 +211,7 @@ static void select_policy(struct f2fs_sb_info *sbi, int gc_type,
|
||||
* foreground GC and urgent GC cases.
|
||||
*/
|
||||
if (gc_type != FG_GC &&
|
||||
(sbi->gc_mode != GC_URGENT) &&
|
||||
(sbi->gc_mode != GC_URGENT_HIGH) &&
|
||||
p->max_search > sbi->max_victim_search)
|
||||
p->max_search = sbi->max_victim_search;
|
||||
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle