Linux vm运行参数之(二):OOM相关的参数

作者:linuxer 发布于:2015-9-28 12:10 分类:内存管理

本文是描述Linux virtual memory运行参数的第二篇,主要是讲OOM相关的参数的。为了理解OOM参数,第二章简单的描述什么是OOM。如果这个名词对你毫无压力,你可以直接 进入第三章,这一章是描述具体的参数的,除了描述具体的参数,我们引用了一些具体的内核代码,本文的代码来自4.0内核,如果有兴趣,可以结合代码阅读, 为了缩减篇幅,文章中的代码都是删减版本的。按照惯例,最后一章是参考文献,本文的参考文献都是来自linux内核的Documentation目录,该 目录下有大量的文档可以参考,每一篇都值得细细品味。

阅读全文>>

标签: oom

评论(20) 浏览(36715)

Linux vm运行参数之(一):overcommit相关的参数

作者:linuxer 发布于:2015-9-23 18:54 分类:内存管理

终于可以进入Linux kernel内存管理的世界了,但是从哪里入手是一个问题,当面对一个复杂系统的时候,有时候不知道怎么开始。遵守“一切以人为本”的原则,我最终选择先 从从userspace的视角来看内核的内存管理。最开始的系列文章选择了vm运行参数这个主题。执行ls /proc/sys/vm的命令,你可以看到所有的vm运行参数,本文选择了overcommit相关参数来介绍。

本文的代码来自4.0内核。

阅读全文>>

标签: overcommit

评论(3) 浏览(31359)

Linux CPU core的电源管理(5)_cpu control及cpu hotplug

作者:wowo 发布于:2015-9-19 21:39 分类:电源管理子系统

由“Linux CPU core的电源管理(1)_概述”的描述可知,kernel cpu control位于“.\kernel\cpu.c”中,是一个承上启下的模块,负责屏蔽arch-dependent的实现细节,向上层软件提供控制CPU core的统一API(主要包括cpu_up/cpu_down等接口的实现)。本文将基于这些API,从上到下,分析CPU core从启动到关闭的整个过程(主要是CPU hotplug),进一步理解系统运行过程中CPU core电源管理相关的行为。

注1:其实这一部分已经不属于电源管理的范畴了,而是系统级的软件行为(boot、调度、电源管理等等),之所以放到这里讲述,主要原因是,这些复杂行为的背后,目的只有一个----节电。因此,本文只会focus在CPU core power状态切换的过程上,涉及到得其它知识,如进程调度,只会一笔带过。

阅读全文>>

标签: Linux cpu hotplug cpu_up cpu_down smpboot

评论(17) 浏览(40165)

Linux内核同步机制之(六):Seqlock

作者:linuxer 发布于:2015-9-9 11:55 分类:内核同步机制

普通的spin lock对待reader和writer是一视同仁,RW spin lock给reader赋予了更高的优先级,那么有没有让writer优先的锁的机制呢?答案就是seqlock。本文主要描述linux kernel 4.0中的seqlock的机制,首先是seqlock的工作原理,如果想浅尝辄止,那么了解了概念性的东东就OK了,也就是第二章了,当然,我还是推荐 普通的驱动工程师了解seqlock的API,第三章给出了一个简单的例子,了解了这些,在驱动中(或者在其他内核模块)使用seqlock就可以易如反 掌了。细节是魔鬼,概念性的东西需要天才的思考,不是说就代码实现的细节就无足轻重,如果想进入seqlock的内心世界,推荐阅读第四章seqlock 的代码实现,这一章和cpu体系结构相关的内容我们选择了ARM64(呵呵~~要跟上时代的步伐)。最后一章是参考资料,如果觉得本文描述不清楚,可以参 考这些经典文献,在无数不眠之夜,她们给我心灵的慰籍,也愿能够给读者带来快乐。

阅读全文>>

标签: Seqlock

评论(34) 浏览(22935)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog