Kernel
文章平均质量分 63
庞白OS
这个作者很懒,什么都没留下…
展开
-
debug kthread call stack
kthread task原创 2022-11-16 19:23:54 · 132 阅读 · 0 评论 -
get_user_pages_remote映射一点小分析
问题:这个get_user_page后,到底得到了啥?访问它会发生啥?先上结论:1. get_user_page后,如果成功,则struct page引用会加1,表示被引用中。mmu页表项也会分配出一个page,此时仍然是no present的。直到真实的access内容时才会page in。这样做的好处是,lazy handle。2.访问它时,这时会触发page fault。发生page in。载入内容。pte_present(entry) 当前内容不在主存上。pte_none(e原创 2022-05-23 14:04:35 · 762 阅读 · 0 评论 -
linux 内存管理概要
linux内存是支持numa,但是常用的uma。其内存管理分3层:1.zone这一层,主要是内存地址并不完全等价,ISA总线只能传输16MB地址,32bit高端内存的问题。所以会分几个区。2.按page页粒度的buddy系统,alloc_pages,__get_freee_pages()这种按page order分配的管理系统。1- MAX_ORDER分组。它的优点在于效率与碎片比较均衡。具体算法是分配时,从对应order去free_area[MAX_ORDER]找空闲的,如果找不到,就大o原创 2022-05-18 13:50:18 · 164 阅读 · 0 评论 -
Linux进程exit时对task_struct引用的安全分析
进程退出是任性的,而内核模块有时候会引用task_struct * task。如果是system call同步调用,则可以放心使用,而走户空间来的异步使用task时就要注意安全,否原创 2021-06-08 17:23:10 · 802 阅读 · 0 评论 -
linux内存/proc/meminfo,/proc/x/status,free -m
内存泄露的问题只能是水是很深的。几个基本操作说明了啥?能看明白也不是件易事?cat /proc/meminfo 系统级别free -m 概略性系统级cat /proc/xx/status 单个进程内存状态1.第一次看/PROC/MEMINFO之谜(http://linuxperf.com/?p=142),快速的过一下,部分懂,觉得应该不错。实际上这篇文章写得真不错,我要写一个相同的主题,怎么看都像抄他的!看的时候也没有多少耐心,不懂的就跳过了,看得懂的就照单收下。应该就是看山是山,看.原创 2021-03-31 10:02:31 · 570 阅读 · 0 评论 -
SLAB和内存泄露
背景:事情是这样来的,测压力测试,发现内存在缓慢上涨(一天涨5MB左右),坑D了,已经用mleak扫描过,内核模块不应该有泄露。然后开始往细节上学习linux内存知识。经过几天学习,找各种资料和书来看slab什么的。算是有所掌握了slab。怕时间一久自己给忘记了,故写下一些杂言,帮助将来快速恢复。几个问题:1.内存回收,dcache,slab 回收,它们是个啥关系,基本机制是啥?slab本身学习的过程,非常像盲人摸象的过程。有好几个方面,单独抽一个部分来学,并不好学,..原创 2021-03-25 16:31:17 · 560 阅读 · 0 评论 -
kobject,kset,ktype和sysfs
不记得以前是否搞清楚过,看了一些书,和网上的一些文章,每个人理解的方法和方式不一样,不是那么明白,好了,写一个适合自己的文档理清相关概念与技术点。原创 2021-03-09 10:04:18 · 144 阅读 · 0 评论 -
Linux RCU的一些理解
从what ,why, howto,原理,优缺点,注意事项,适用对象,这几个角度来说说。RCU的实现还是比较精巧的。what什么是RCU.Read-copy update (RCU) is a synchronization mechanism that was added to the Linux kernel in October of 2002本质是一种同步优化。但是不同于rwlock读写锁。实现上很有技巧。RCU顾名思义就是读-拷贝修改。就这个名字就有些说头:读者R...原创 2021-02-26 17:16:42 · 306 阅读 · 0 评论 -
inverse map 页框逆映射
inverse map页框逆映射在页回收中,逆映射是一个有意思,并且很有技巧的一个功能.逆映射:就是从给定的page来找到所有的引用者,特别的是PTE页表项.有了逆映射就能安心释放指定page了.不然就会杯具了.逆映射的场景:共享页框最常见的是共享库,C库基本上映射到所有的用户进程了.其次比如共享内存.**kernel的演进:**1. 2.4时代是遍历所有的进程要找到此page的引用者的...原创 2018-08-13 16:09:20 · 726 阅读 · 0 评论 -
从演进模型的视角来看VFS骨架
VFS是Linux kernel的重要组件,已经有很多书和文章进行论述.本文从一个略为特别的视角来说明VFS:通过逐步演进增加模型功能将VFS描述清楚.同时回答why与how.VFS一个主要的功能是通过path查到到对应文件.比如"/bin/sh"VFS1.0最简模型VFS是通过树来组织文件的.1仅dentry就足够建立一棵树.描述文件树."/"|...原创 2018-08-03 15:11:08 · 185 阅读 · 0 评论 -
从演进模型的视角来看ext2
以下是个人的见解,不一定对.只是说这样的视角去看ext2比较习惯.概括来讲:就是ino作为索引号,坚持并一致的用数组寻址来实现高效率.# ext2模型1.0#磁盘是块设备,是按扇区块来访问.固定大小为512byte.这个512byte是固定的,我们灵活一下.在上面再建一层弹性大小的粒度.形成更大的小格子来管理.也就是块block(blk缩写).所有的数据按块对齐align管理.把整块磁...原创 2018-08-07 10:27:13 · 175 阅读 · 0 评论