1.前言

GC分为前台GC和后台GC

2.总体流程

f2fs_fill_superstart_gc_thread(sbi)init_waitqueue_head(&sbi->gc_thread->gc_wait_queue_head)kthread_run(gc_thread_func)

3.gc_thread_func

gc_thread_funcf2fs_balance_fs(sbi)sync_dirty_dir_inodessync_node_pagesf2fs_gc__get_victimdo_garbage_collect
  1. f2fs_balance_fs
    如果need_to_flush为true,将执行sync_dirty_dir_inodes来写入dirty directory inode
    sync_node_pages来写入dirty node page

  2. f2fs_gc
    如果has_not_enough_free_secs为false则执行f2fs_gc操作, 它实际会执行__get_victim,实际回调为get_victim_by_default,最终通过get_victim_by_default选择出合适的section, 通过对section中的每个segment执行do_garbage_collect进行GC回收。do_garbage_collect分为两种回收,gc_node_segment和gc_data_segment。

参考文档

1.https://blog.csdn.net/u011649400/article/details/100530006
F2FS源码分析-4.1 [F2FS GC部分] 垃圾回收机制源码分析
2.https://github.com/RiweiPan/F2FS-NOTES/blob/master/ImportantDataStructure/f2fs_summary.md
f2fs_summary 和 f2fs_summary_block

f2fs学习笔记 -11. f2fs gc相关推荐

  1. f2fs学习笔记 - 6. f2fs初始化流程

    1.前言 初始流程主要包含f2fs文件系统初始化,以及f2fs文件系统mount 2. init_f2fs_fs init_inodecache 创建f2fs_inode_cache slab描述符 ...

  2. f2fs学习笔记 - 2. f2fs基础实验环境搭建

    1.前言 本文主要记录如何搭建f2fs的环境,用于f2fs文件系统的学习.我们选用了f2fs第一个补丁提交前的内核版本:linux3.7.0.然后通过提取出f2fs的最小补丁来学习f2fs文件系统,这 ...

  3. f2fs学习笔记 - 7. f2fs文件打开

    1. 前言 本文主要总结f2fs文件的打开过程,以touch test为例 2.打开文件总体流程 在打开文件时,获取了file描述符,创建了file, 而file->op_s来源于file所对应 ...

  4. f2fs学习笔记 - 5. f2fs基本类图

    f2fs_nat_entry f2fs node address table entry, 可以认为是main area区域的node block的描述符.version? ino为node所对应的i ...

  5. f2fs学习笔记 -10. f2fs fsync

    kernel:linux3.17 fs: f2fs初始版本 1.前言 本文主要记录f2fs fsync的流程. 2.总体流程 do_fsyncfget(fd)vfs_fsync(file, file- ...

  6. SpringMVC:学习笔记(11)——依赖注入与@Autowired

    SpringMVC:学习笔记(11)--依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许 ...

  7. Hadoop学习笔记—11.MapReduce中的排序和分组

    Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...

  8. HALCON 20.11:深度学习笔记(11)---目标检测

    HALCON 20.11:深度学习笔记(11)---目标检测 HALCON 20.11.0.0中,实现了深度学习方法. 本章讲解了如何使用基于深度学习的对象检测. 通过对象检测,我们希望在图像中找到不 ...

  9. 台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network

    台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network 本博客主要整理自: http://blog.csdn.net/x ...

最新文章

  1. 带你和Python与R一起玩转数据科学: 探索性数据分析(附代码)
  2. exists hive中如何使用_07045.16.2如何使用Hive合并小文件
  3. Java 学生管理系统 GUI txt文件存储
  4. RDCMan 安装问题
  5. usb加密狗破解原理及方法介绍
  6. DEJA_VU3D - Cesium功能集 之 050-纯前端空间体体积计算
  7. python求解一元二次方程
  8. 10.恩智浦-车规级-MCU:S32K11X FTM-PWM输出实验
  9. 升级iOS13后悔怎么办?手把手教你iOS系统降级,只要简单几步就可以!
  10. C# 加减乘除计算器
  11. Excel制作水滴图和对称条形图
  12. 我为何一直强调外包公司别去
  13. B BL BLX BX详解
  14. Qt4.7.3在dm6446平台上的移植经验与教训
  15. 语音识别项目(数据集用的是thchs-30)
  16. 淘宝规则不断更新,开网店前景怎样,还好做吗?
  17. 系统集成项目管理工程师 软考中级 第一章重点汇总笔记(书本参照 第二版)
  18. 易筋经、降龙十八掌在英语中如何翻译
  19. 教程示例:嵌入式软件移植 printf
  20. Java中重载的作用?

热门文章

  1. VMware的更新怎么这么恶心
  2. Linux 浏览器无法输入中文解决办法
  3. 汉诺塔问题的递归和非递归算法
  4. ubuntu中静态ip的修改配置
  5. 推荐一个免费下matlab代码的网站
  6. idea 启动多个项目 减少内存占用
  7. 深入理解机器学习中的:目标函数,损失函数和代价函数
  8. mysql decimal类型转date类型
  9. 图像的腐蚀(erosion)和膨胀(dilation)
  10. Python表达式 n1 与 表达式n%2