自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

转载 【内核资料】stackoverflow上关于内核为何偏爱kmalloc(),而很少用vmalloc()的讨论

1. 问题What is the difference between vmalloc and kmalloc?2. 大致观点涉及到DMA的话,需要物理上连续的内存;内核之所以偏好分配物理上连续内存,并不是必须的,而主要是考虑性能:kmalloc()和vmalloc()效率高;kmalloc()对TLB更友好;内核的页面不会被swapped,而是常驻内存中,无论kmalloc()分配还是vmalloc()分配;...

2020-07-14 16:00:50 243

原创 【INT的内核笔记】Linux内核内存空间布局研究

1.Linux内核映射从上面的页表设置可以看出:内核对内核虚拟地址和物理地址之间的转换,是会有需求的。很容易可以想到最简单的解决方法:将内核虚拟空间地址,和实际物理空间逐一对应进行线性映射。在很早期的时候,确实就是这样做的。但是在32位时代,内核的虚拟空间只有1G,也就是说全部都进行线性映射的话,内核只能使用1G物理内存,但是我们也知道就是32位时代,其实物理内存很多也不止4G了,而且CPU后面也相应支持。但是,虚拟地址空间还是只有4G,内核还是只有1G,如果还是进行直接线性映射的

2020-07-11 21:38:34 519

转载 转stackoverflow一个问题,关于内核是如何管理页表(pgd,pud,pmd,pte)本身所占的内存

碎碎念我今天莫名开始纠结起,关于linux页表方面的问题。然后就想到,【页表本身也是要占有一部分内存的,所以内核又是如何管理页表本身所占有的这部分内存的呢?】找了很久,没太满意的答案。甚至都没有具体方向,所以也不太有希望从源码中找到答案。暂时就以在stackoverflow上找到的这个提问,作为这次疑惑的收尾吧,可能要很久很久之后才能得到圆满的解答了。回复的大致意思是:【根据linux内核相关wiki,页表就是常驻在内存中的,不会换出。】也不知道实际是如何的,还是希望有从动态层面上研究过内核的

2020-07-09 01:24:56 577

原创 【INT的内核笔记】梳理sleep_avg,prio,activated,timestamp,last_ran等重要调度变量

1. sleep_avg1.1 sleep_avg简介sleep_avg处在task_struct数据结构中,sleep其实和平均没有什么关系,是一个睡眠时间评估值,命名可能有历史原因。直接关系到进程动态优先级prio的计算:动态优先级prio = 静态优先级static_prio - CURRENT_BONUS(p) + 5CURRENT_BONUS(p)和p->sleep_avg是正相关的,prio越小越好,因此:sleep_avg越大,调用effective_prio(p)重新计算

2020-07-02 08:58:11 539

原创 【INT的内核笔记】调度时机与抢占

1. 调度时机调度时机一般可以分成两类:主动调度和强制调度。1.1 主动调度在形式上一般是这样的:内核在等待资源的时候,将当前进程移到等待队列,并主动调用schedule()放弃CPU;主动调度的例子:read()系统调用,会调用到wait_on_sync_kiocb(),其中有这么一段 while (iocb->ki_users) { set_current_state(TASK_UNINTERRUPTIBLE); if (!iocb->ki_users)

2020-07-01 16:26:15 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除