f2fs学习笔记 -11. f2fs gc
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
f2fs_balance_fs
如果need_to_flush为true,将执行sync_dirty_dir_inodes来写入dirty directory inode
sync_node_pages来写入dirty node pagef2fs_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相关推荐
- f2fs学习笔记 - 6. f2fs初始化流程
1.前言 初始流程主要包含f2fs文件系统初始化,以及f2fs文件系统mount 2. init_f2fs_fs init_inodecache 创建f2fs_inode_cache slab描述符 ...
- f2fs学习笔记 - 2. f2fs基础实验环境搭建
1.前言 本文主要记录如何搭建f2fs的环境,用于f2fs文件系统的学习.我们选用了f2fs第一个补丁提交前的内核版本:linux3.7.0.然后通过提取出f2fs的最小补丁来学习f2fs文件系统,这 ...
- f2fs学习笔记 - 7. f2fs文件打开
1. 前言 本文主要总结f2fs文件的打开过程,以touch test为例 2.打开文件总体流程 在打开文件时,获取了file描述符,创建了file, 而file->op_s来源于file所对应 ...
- f2fs学习笔记 - 5. f2fs基本类图
f2fs_nat_entry f2fs node address table entry, 可以认为是main area区域的node block的描述符.version? ino为node所对应的i ...
- f2fs学习笔记 -10. f2fs fsync
kernel:linux3.17 fs: f2fs初始版本 1.前言 本文主要记录f2fs fsync的流程. 2.总体流程 do_fsyncfget(fd)vfs_fsync(file, file- ...
- SpringMVC:学习笔记(11)——依赖注入与@Autowired
SpringMVC:学习笔记(11)--依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许 ...
- Hadoop学习笔记—11.MapReduce中的排序和分组
Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...
- HALCON 20.11:深度学习笔记(11)---目标检测
HALCON 20.11:深度学习笔记(11)---目标检测 HALCON 20.11.0.0中,实现了深度学习方法. 本章讲解了如何使用基于深度学习的对象检测. 通过对象检测,我们希望在图像中找到不 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network
台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network 本博客主要整理自: http://blog.csdn.net/x ...
最新文章
- 带你和Python与R一起玩转数据科学: 探索性数据分析(附代码)
- exists hive中如何使用_07045.16.2如何使用Hive合并小文件
- Java 学生管理系统 GUI txt文件存储
- RDCMan 安装问题
- usb加密狗破解原理及方法介绍
- DEJA_VU3D - Cesium功能集 之 050-纯前端空间体体积计算
- python求解一元二次方程
- 10.恩智浦-车规级-MCU:S32K11X FTM-PWM输出实验
- 升级iOS13后悔怎么办?手把手教你iOS系统降级,只要简单几步就可以!
- C# 加减乘除计算器
- Excel制作水滴图和对称条形图
- 我为何一直强调外包公司别去
- B BL BLX BX详解
- Qt4.7.3在dm6446平台上的移植经验与教训
- 语音识别项目(数据集用的是thchs-30)
- 淘宝规则不断更新,开网店前景怎样,还好做吗?
- 系统集成项目管理工程师 软考中级 第一章重点汇总笔记(书本参照 第二版)
- 易筋经、降龙十八掌在英语中如何翻译
- 教程示例:嵌入式软件移植 printf
- Java中重载的作用?