01 2016 档案

摘要:1. ftrace的输出如下图所示:[003] 48375.494595: clear_buddies <-pick_next_entitym=re.match("^\[([0-9]*)\] ([0-9]+\.[0-9]+): (\\w+) <-(\\w+)", line);这个正则表达式,从lin... 阅读全文
posted @ 2016-01-20 00:45 honpey 阅读(443) 评论(0) 推荐(0)
摘要:1 查找某个目录下面一个所有的可执行文件,并且删除(对删除一个工程的可执行文件格外有用)find . -maxdepth 1 -file f -perm -111 | xargs rm 阅读全文
posted @ 2016-01-17 23:10 honpey 阅读(185) 评论(0) 推荐(0)
摘要:上面一篇文章说到: process_one_work中最重要的一件事情就是worker->current_func(work);这里就具体到一项很具体的任务了,由于我要研究文件系统嘛,所以很自然就到具体的任务里:void wb_workfn(struct work_struct *work)首先,w... 阅读全文
posted @ 2016-01-16 11:48 honpey 阅读(884) 评论(0) 推荐(0)
摘要:工作者线程不断执行,从work_poll结构中卸下一个work, 然后进入函数process_one_work来执行这个work.process_one_work(struct worker *worker, struct work_struct *work)下面一行行代码分析下:首先,struct... 阅读全文
posted @ 2016-01-16 11:26 honpey 阅读(2727) 评论(0) 推荐(0)
摘要:pagecache层内存管理 如果使用page,尤其对于32位系统来说,kmap & kunmap,可以把做struct *page与虚拟地址的映射 用kmap做一个临时的映射,然后通过kunmap释放以使用稀少的高端内存映射 pagecache层中TOWRITE是为了解决livelock的问题 p 阅读全文
posted @ 2016-01-11 23:10 honpey 阅读(645) 评论(0) 推荐(0)
摘要:nameidata /mnt/dir1/dir2/ nameidata结构体是一个临时的结构体, 目标是为了找到最后的dentry. 阅读全文
posted @ 2016-01-03 22:54 honpey 阅读(394) 评论(0) 推荐(0)
摘要:基础知识在<深入linux内核架构>第8章,自行脑补. 看下几个关键的过程: do_add_mount里有重要函数lock_mount, lock_mount函数的输入是struct path, 输出是struct mountpoint: path 由 filename_lookup 得到, 其中v 阅读全文
posted @ 2016-01-03 22:44 honpey 阅读(3125) 评论(0) 推荐(0)