/* * fs/f2fs/gc.h * * Copyright (c) 2012 Samsung Electronics Co., Ltd. * http://www.samsung.com/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #define GC_THREAD_MIN_WB_PAGES 1 /* * a threshold to determine * whether IO subsystem is idle * or not */ #define DEF_GC_THREAD_URGENT_SLEEP_TIME 500 /* 500 ms */ #define DEF_GC_THREAD_MIN_SLEEP_TIME 30000 /* milliseconds */ #define DEF_GC_THREAD_MAX_SLEEP_TIME 60000 #define DEF_GC_THREAD_NOGC_SLEEP_TIME 300000 /* wait 5 min */ #define LIMIT_INVALID_BLOCK 40 /* percentage over total user space */ #define LIMIT_FREE_BLOCK 40 /* percentage over invalid + free space */ #define DEF_GC_FAILED_PINNED_FILES 2048 /* Search max. number of dirty segments to select a victim segment */ #define DEF_MAX_VICTIM_SEARCH 4096 /* covers 8GB */ struct f2fs_gc_kthread { struct task_struct *f2fs_gc_task; wait_queue_head_t gc_wait_queue_head; /* for gc sleep time */ unsigned int urgent_sleep_time; unsigned int min_sleep_time; unsigned int max_sleep_time; unsigned int no_gc_sleep_time; /* for changing gc mode */ unsigned int gc_idle; unsigned int gc_urgent; unsigned int gc_wake; }; struct gc_inode_list { struct list_head ilist; struct radix_tree_root iroot; }; /* * inline functions */
static inline block_t free_user_blocks(struct f2fs_sb_info *sbi) { if (free_segments(sbi) < overprovision_segments(sbi)) return 0; else return (free_segments(sbi) - overprovision_segments(sbi)) << sbi->log_blocks_per_seg; }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Jaegeuk Kim | 45 | 100.00% | 1 | 100.00% |
Total | 45 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Jaegeuk Kim | 26 | 100.00% | 1 | 100.00% |
Total | 26 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Jaegeuk Kim | 36 | 100.00% | 1 | 100.00% |
Total | 36 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Chao Yu | 46 | 61.33% | 2 | 40.00% |
Jaegeuk Kim | 21 | 28.00% | 2 | 40.00% |
Namjae Jeon | 8 | 10.67% | 1 | 20.00% |
Total | 75 | 100.00% | 5 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Chao Yu | 39 | 53.42% | 2 | 40.00% |
Jaegeuk Kim | 23 | 31.51% | 2 | 40.00% |
Namjae Jeon | 11 | 15.07% | 1 | 20.00% |
Total | 73 | 100.00% | 5 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Jaegeuk Kim | 49 | 98.00% | 1 | 50.00% |
Ju Hyung Park | 1 | 2.00% | 1 | 50.00% |
Total | 50 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Jaegeuk Kim | 266 | 65.36% | 6 | 46.15% |
Chao Yu | 85 | 20.88% | 2 | 15.38% |
Namjae Jeon | 40 | 9.83% | 2 | 15.38% |
Changman Lee | 13 | 3.19% | 1 | 7.69% |
Jin Xu | 2 | 0.49% | 1 | 7.69% |
Ju Hyung Park | 1 | 0.25% | 1 | 7.69% |
Total | 407 | 100.00% | 13 | 100.00% |