kernel
文章平均质量分 69
沙漠之狐8341
软件工程师,证券分析师。
展开
-
从cgroup_init_early函数学习cgroup——初始化代码
前面分析了cgroup机制的框架及数据结构之间的关系,现在看代码就比较见简单了。 代码部分 在init/main.c的start_kernel函数中会调用cgroup_init_early函数进行cgroup的初始化。其实对cgroup的初始化分两次,分别是cgroup_init_early和cgroup_init。这么做的原因是,系统初始阶段需要使用一些 subsystem,先对这一部分进行初始...转载 2018-05-08 11:17:04 · 1422 阅读 · 0 评论 -
从cgroup_init_early函数学习cgroup——框架
一些概念的理解cgroup cgourp是一种机制 作用:集成各个进程,对进程分组实现进程组,分配或限制进程组使用的资源(这部分主要有个各个subsystem完成)。 另一个角度,在研究代码的时候,我们更愿意将cgroup理解为一种控制资源的行为。比如:我想要控制进程的CPU使用率为20%,那么我可以创建一个cgroup,这cgroup的作用就是控制指定进程的cpu...转载 2018-05-08 10:19:57 · 554 阅读 · 0 评论 -
内核抢占与中断返回
1、上下文一般来说,CPU在任何时刻都处于以下三种情况之一:(1)运行于用户空间,执行用户进程;(2)运行于内核空间,处于进程上下文;(3)运行于内核空间,处于中断上下文。应用程序通过系统调用陷入内核,此时处于进程上下文。现代几乎所有的CPU体系结构都支持中断。当外部设备产生中断,向CPU发送一个异步信号,CPU调用相应的中断处理程序来处理该中断,此时CPU处于中断上下文。在进程上下文中,可以通过...原创 2018-05-08 12:15:46 · 371 阅读 · 0 评论 -
linux内核中的likely()和unlikely()宏的作用
在看linux内核代码的时候,经常会看到likely(x)和unlikely(x)宏的使用。那这两个宏有什么作用呢?这两个宏在内核中的定义如下:# define likely(x) __builtin_expect(!!(x), 1)# define unlikely(x) __builtin_expect(!!(x), 0)可见这里使用了gcc的内建函数__builtin_expect()。_...原创 2018-05-08 12:44:18 · 121 阅读 · 0 评论 -
Linux cpumask分析
首先我们来分析一下定义在cpumask.h中 结构体cpumask_t[cpp] view plain copy typedef struct cpumask { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t;#define DECLARE_BITMAP(name,bits) \ unsigned long name[BITS_TO_LONGS(bits)]...原创 2018-05-08 17:29:32 · 1228 阅读 · 0 评论 -
汇编
.fill 语法:.fill repeat, size, value 含义是反复拷贝 size个字节,重复 repeat 次, 其中 size 和 value 是可选的,默认值分别为 1 和 0.原创 2018-05-08 18:04:03 · 85 阅读 · 0 评论