文件系统
文章平均质量分 89
geshifei
这个作者很懒,什么都没留下…
展开
-
nat journal
f2fs一些零散的问题,记录一下(文章不完整)。原创 2023-09-12 18:00:26 · 163 阅读 · 0 评论 -
F2FS nat entry涉及的数据结构(linux 5.18.11)
只要内存中生成ne,都会缓存在nat cache中(最大数量10万个,见宏定义DEF_NAT_CACHE_THRESHOLD),系统内存压力大的时候,需要回收clean状态的ne,避免f2fs对系统内存的影响。f2fs_fill_super --> f2fs_build_segment_manager --> build_curseg --> restore_curseg_summaries --> read_compacted_summaries 或 read_normal_summaries。原创 2022-10-25 20:00:00 · 975 阅读 · 0 评论 -
linux 预读机制 (linux4.14)
文件一般是顺序访问的,访问[A, B]范围的数据后,接下来很可能访问[B+1, B+N]数据。由于访问磁盘、flash等存储器件比较耗时,在访问 [A, B]的时候,如果提前把[B+1, B+N]数据从存储器件读取到ram中,那么后继需要用[B+1, B+N]数据时,就不需要耗时的disk io从存储器件读取数据了,从而提高性能。原创 2022-10-12 09:44:27 · 1493 阅读 · 1 评论 -
F2FS数据块寻址(linux5.18.11)
存储元数据(比如ino、寻址数据块用到的一些信息等等)的block。node block有三种类型:inode block、direct node block、indirect node block。node block在内存中以struct f2fs_node表示。存储文件数据的block。F2FS的每个分区disk layout简化后如下图所示,Main area区按照section划分成多个单元,每个section又包含多个segment(默认情况下1个section含1个segment)。原创 2022-10-09 17:51:02 · 1481 阅读 · 0 评论 -
F2FS lfs模式buffered write写流程(linux 5.18.11)
f2fs lfs模式buffered write写流程原创 2022-09-26 11:42:38 · 864 阅读 · 0 评论 -
linux debug code---记录文件操作(linux4.4)
背景系统中一些文件丢失了,需要查明丢失的原因,对这个问题有很多方法可以debug,比如ftrace、fsnotify、在unlink、rename函数中加printk等方法,因为ftrace、fsnotify不能获取进程名,并且我们系统中printk默认是关闭的,所以采取了“内核记录文件,存储在磁盘中”的方法,以便异常复现后进行分析。示例代码不依赖于任何平台,在节尾的一些解释中,比如acc...原创 2019-10-01 23:48:39 · 478 阅读 · 1 评论 -
inode的i_nlink(linux4.0.4)
一、背景1)通过命令ln a b创建硬链接b->a后(a是一个普通文件),stat a命令看到Links值是多少? gsf@ubuntu:~$ stat a File: 'a' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 80...原创 2019-02-11 23:58:11 · 1636 阅读 · 1 评论 -
fork-父子进程读写文件的偏移量(linux4.0.4)
一、背景本文阐述的问题是:fork进程后父子进程操作文件的偏移量是否相同?该问题可以用以下代码来展示,如您能知道代码执行后forkfile文件的内容是什么,那么请略过此文。 #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <...原创 2019-02-10 14:24:05 · 1260 阅读 · 0 评论 -
rename代码阅读(linux 3.10.104)
前言本文通过分析rename的代码,让读者对rename流程有清晰的认识。对于文中涉及的dentry、inode、ext3 disk layout、rcu锁、dcache等基础知识,请参考其他博文。为避免用大篇篇幅介绍dentry lookup过程,我们假设路径名中各级分量的dentry存在dcache中,这样dentry lookup流程能够以无锁RCU方式快速地从dcache中找到对应...原创 2018-08-07 16:34:52 · 2840 阅读 · 1 评论 -
read代码阅读一(linux3.10.14)
本文对read涉及的各个模块做个简单描述,具体的细节在后面文章中描述。原创 2016-10-30 11:07:51 · 1391 阅读 · 0 评论