![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
Luffy Dong
这个作者很懒,什么都没留下…
展开
-
IDLE进程不可抢占
关于IDLE进程不可抢占的commit。原创 2023-01-16 09:49:45 · 91 阅读 · 0 评论 -
关于ARM寄存器TTBR0 TTBR1
At the hardware level, ARM supports two page table trees simultaneously, using the hardware registers TTBR0 and TTBR1. A virtual address is mapped to a physical address by the CPU depending on settings in TTBRC. This control register has a field which sets转载 2022-09-30 14:15:12 · 636 阅读 · 0 评论 -
Linux内核如何管理内存
翻译一篇老文章,基础原理十年未变 https://manybutfinite.com/post/how-the-kernel-manages-your-memory/进程虚拟地址空间布局出来后,我们回到内核探究其管理用户态内存的机制,这里仍旧是gonzo进程:Linux进程在内核空间是以一个task_struct实现的,这个实例就是进程描述符。task_struct 里的mm指针指...翻译 2019-08-13 00:34:40 · 238 阅读 · 0 评论 -
Linux lockdep信息分析
lockdep是内核提供协助发现死锁问题的feature以如下ABBA类型circular locking为例分析一下打印信息 1[13.007000]WARNING:possiblecircularlockingdependencydetected 2[13.007587]5.0.0-rc3-00018-g2fa53f892422-dirty#477Nottainted 3[13.008124]------------------------...原创 2020-07-09 23:53:46 · 672 阅读 · 0 评论 -
vsync从中断到用户态的经历
vsync是显示屏的垂直同步信号它指示着前一帧的结束,和新一帧的开始。 在本人的G965手机源码中,可以看到硬件的vsync首先是外部command屏幕的GPIO中断出发的(简称vsync_irq),中断handler里会调用wake_up_interruptible_all函数唤醒内核态vsync线程(简称k_vsync_thread),在k_vsync_thread中会调用sysfs_notify函数唤醒一个kworker,这个kworker的callback函数里会调用wake_up...原创 2020-05-19 22:56:13 · 831 阅读 · 0 评论 -
linux的0号进程是不可抢占的
从linux的调度策略来讲,当一个CPU没有调度实体可被调度的时候,才会轮到0号进程idle的运行。调度实体就是sched_entity结构,由于每个task_struct都嵌入了sched_entity的一个实例,所以linux进程是可调度实体,但逆命题是不正确的,因为还有线程和进程组。 idle是优先级最低的进程,可以想象在任何情况下都能被别的进程immediately抢占,而实际上,通过ftrace可以看到idle在运行的时候一直是关抢占的(preempt-depth不为零),也就是说只有i...原创 2020-05-19 22:51:25 · 257 阅读 · 0 评论 -
Linux 的五大调度类
原创 2020-02-10 17:12:07 · 1164 阅读 · 0 评论