摘要:
由于对blktrace的好奇,来到了block层.通过阅读block层的代码,自己的几个错误认知被纠正,比如 一) 同步操作时,进程是在驱动中睡觉真实情况是:进程在文件系统睡觉 二) 对同一个数据块的读写是在block控制 真实情况是:对同一数据块的是在文件系统中控制. 两个周来,对文件系统肃然起敬 阅读全文
摘要:
下面是我们要处理的文本:题目要求是把所有散列在不同行的同一个中括号中的数据集中在一起, 见下表就秒懂了吧 先说指令: sed '/^\[/{:a;N;/^\[/!{s/\n\[//g;ta}};P;D;' enter.txt 这条指令真是把本人折腾得够呛啊, 其中涉及到sed中几个关键指令的意义: 阅读全文
摘要:
[都是思想片段, 待好好整理] node page的lock_page首先是为了改变page的状态:set_page_dirty, 还有set_nid操作时也会设置父节点的nid, 但是这样设置node-page的粒度是不是太小了! node_page首先不会有用户态的进程去操作它, 因为node对 阅读全文
摘要:
1. ftrace的输出如下图所示:[003] 48375.494595: clear_buddies <-pick_next_entitym=re.match("^\[([0-9]*)\] ([0-9]+\.[0-9]+): (\\w+) <-(\\w+)", line);这个正则表达式,从lin... 阅读全文
摘要:
1 查找某个目录下面一个所有的可执行文件,并且删除(对删除一个工程的可执行文件格外有用)find . -maxdepth 1 -file f -perm -111 | xargs rm 阅读全文
摘要:
上面一篇文章说到: process_one_work中最重要的一件事情就是worker->current_func(work);这里就具体到一项很具体的任务了,由于我要研究文件系统嘛,所以很自然就到具体的任务里:void wb_workfn(struct work_struct *work)首先,w... 阅读全文
摘要:
工作者线程不断执行,从work_poll结构中卸下一个work, 然后进入函数process_one_work来执行这个work.process_one_work(struct worker *worker, struct work_struct *work)下面一行行代码分析下:首先,struct... 阅读全文
摘要:
pagecache层内存管理 如果使用page,尤其对于32位系统来说,kmap & kunmap,可以把做struct *page与虚拟地址的映射 用kmap做一个临时的映射,然后通过kunmap释放以使用稀少的高端内存映射 pagecache层中TOWRITE是为了解决livelock的问题 p 阅读全文
摘要:
nameidata /mnt/dir1/dir2/ nameidata结构体是一个临时的结构体, 目标是为了找到最后的dentry. 阅读全文
摘要:
基础知识在<深入linux内核架构>第8章,自行脑补. 看下几个关键的过程: do_add_mount里有重要函数lock_mount, lock_mount函数的输入是struct path, 输出是struct mountpoint: path 由 filename_lookup 得到, 其中v 阅读全文