如何给内核提交补丁

提交过程step1: get the right branch可以参考 MAINTAINERS文件,可能不对,直接看git.kernel.org, 注意git pull到最新step2: generate one patchgit format-patch -1 commit_idcover-letter给一次提交多个用step3: check patch$ ./scri...阅读全文

Ubuntu下git send-email的使用

家里的nas/linaro上装个发内核补丁环境, rpi远程。Can't locate Net/SMTP/SSL.pm in @INC要安装下面这个包sudo apt-get install libnet-smtp-ssl-perl安装完后有下面这个错误Send this email? ([y]es|[n]o|[q]uit|[a]ll): a Password: Nee...阅读全文

kswapd唤醒分析

kswapd is a background pageout daemon,回收内存。唤醒的接口是 wake_all_kswapd/wakeup_kswapd,lets check./* * This is the 'heart' of the zoned buddy allocator. */ struct page * __alloc_pages_nodemask...阅读全文

理解Linux VM pressure

原生Linux内核是把vmpressure和CONFIG_MEMCG绑定的,是给用户态用的。makefile里写的很清楚:obj-$(CONFIG_MEMCG) += memcontrol.o page_cgroup.o vmpressure.o内核文档也放到了cgroup下memory.txt:Memory PressureThe pressure level noti...阅读全文

zone水位阈值代码分析

内核zone里有个水位的概念,根据这个水位判断内存压力,从而进行内存回收,版本3.18。struct zone { /* Read-mostly fields */ /* zone watermarks, access with *_wmark_pages(zone) macros */ unsigned long watermark[NR_WM...阅读全文

Linux内存模型分析

kernel版本是3.18,先看下内存描述几个概念。zone 概念NUMA全称Non-Uniform Memory Access,主要说的是cpu访问memory bank依赖他们之间的距离成本问题。memory被划分成bank,每一个bank叫做node,每一个node被分成很多块叫zones, node用pglist_data表示, zone里包含pages/* *...阅读全文