Loading fs/f2fs/gc.c +4 −4 Original line number Diff line number Diff line Loading @@ -44,7 +44,7 @@ static int gc_thread_func(void *data) break; if (sbi->sb->s_writers.frozen >= SB_FREEZE_WRITE) { wait_ms = increase_sleep_time(gc_th, wait_ms); increase_sleep_time(gc_th, &wait_ms); continue; } Loading @@ -65,15 +65,15 @@ static int gc_thread_func(void *data) continue; if (!is_idle(sbi)) { wait_ms = increase_sleep_time(gc_th, wait_ms); increase_sleep_time(gc_th, &wait_ms); mutex_unlock(&sbi->gc_mutex); continue; } if (has_enough_invalid_blocks(sbi)) wait_ms = decrease_sleep_time(gc_th, wait_ms); decrease_sleep_time(gc_th, &wait_ms); else wait_ms = increase_sleep_time(gc_th, wait_ms); increase_sleep_time(gc_th, &wait_ms); stat_inc_bggc_count(sbi); Loading fs/f2fs/gc.h +14 −14 Original line number Diff line number Diff line Loading @@ -66,26 +66,26 @@ static inline block_t limit_free_user_blocks(struct f2fs_sb_info *sbi) return (long)(reclaimable_user_blocks * LIMIT_FREE_BLOCK) / 100; } static inline long increase_sleep_time(struct f2fs_gc_kthread *gc_th, long wait) static inline void increase_sleep_time(struct f2fs_gc_kthread *gc_th, long *wait) { if (wait == gc_th->no_gc_sleep_time) return wait; if (*wait == gc_th->no_gc_sleep_time) return; wait += gc_th->min_sleep_time; if (wait > gc_th->max_sleep_time) wait = gc_th->max_sleep_time; return wait; *wait += gc_th->min_sleep_time; if (*wait > gc_th->max_sleep_time) *wait = gc_th->max_sleep_time; } static inline long decrease_sleep_time(struct f2fs_gc_kthread *gc_th, long wait) static inline void decrease_sleep_time(struct f2fs_gc_kthread *gc_th, long *wait) { if (wait == gc_th->no_gc_sleep_time) wait = gc_th->max_sleep_time; if (*wait == gc_th->no_gc_sleep_time) *wait = gc_th->max_sleep_time; wait -= gc_th->min_sleep_time; if (wait <= gc_th->min_sleep_time) wait = gc_th->min_sleep_time; return wait; *wait -= gc_th->min_sleep_time; if (*wait <= gc_th->min_sleep_time) *wait = gc_th->min_sleep_time; } static inline bool has_enough_invalid_blocks(struct f2fs_sb_info *sbi) Loading Loading
fs/f2fs/gc.c +4 −4 Original line number Diff line number Diff line Loading @@ -44,7 +44,7 @@ static int gc_thread_func(void *data) break; if (sbi->sb->s_writers.frozen >= SB_FREEZE_WRITE) { wait_ms = increase_sleep_time(gc_th, wait_ms); increase_sleep_time(gc_th, &wait_ms); continue; } Loading @@ -65,15 +65,15 @@ static int gc_thread_func(void *data) continue; if (!is_idle(sbi)) { wait_ms = increase_sleep_time(gc_th, wait_ms); increase_sleep_time(gc_th, &wait_ms); mutex_unlock(&sbi->gc_mutex); continue; } if (has_enough_invalid_blocks(sbi)) wait_ms = decrease_sleep_time(gc_th, wait_ms); decrease_sleep_time(gc_th, &wait_ms); else wait_ms = increase_sleep_time(gc_th, wait_ms); increase_sleep_time(gc_th, &wait_ms); stat_inc_bggc_count(sbi); Loading
fs/f2fs/gc.h +14 −14 Original line number Diff line number Diff line Loading @@ -66,26 +66,26 @@ static inline block_t limit_free_user_blocks(struct f2fs_sb_info *sbi) return (long)(reclaimable_user_blocks * LIMIT_FREE_BLOCK) / 100; } static inline long increase_sleep_time(struct f2fs_gc_kthread *gc_th, long wait) static inline void increase_sleep_time(struct f2fs_gc_kthread *gc_th, long *wait) { if (wait == gc_th->no_gc_sleep_time) return wait; if (*wait == gc_th->no_gc_sleep_time) return; wait += gc_th->min_sleep_time; if (wait > gc_th->max_sleep_time) wait = gc_th->max_sleep_time; return wait; *wait += gc_th->min_sleep_time; if (*wait > gc_th->max_sleep_time) *wait = gc_th->max_sleep_time; } static inline long decrease_sleep_time(struct f2fs_gc_kthread *gc_th, long wait) static inline void decrease_sleep_time(struct f2fs_gc_kthread *gc_th, long *wait) { if (wait == gc_th->no_gc_sleep_time) wait = gc_th->max_sleep_time; if (*wait == gc_th->no_gc_sleep_time) *wait = gc_th->max_sleep_time; wait -= gc_th->min_sleep_time; if (wait <= gc_th->min_sleep_time) wait = gc_th->min_sleep_time; return wait; *wait -= gc_th->min_sleep_time; if (*wait <= gc_th->min_sleep_time) *wait = gc_th->min_sleep_time; } static inline bool has_enough_invalid_blocks(struct f2fs_sb_info *sbi) Loading