page_cgroup_init();
这个函数是容器组的页面内存分配。
mem_init();
这个函数是标记那些内存可以使用,并且告诉系统有多少内存可以使用,当然是除了内核使用的内存以外。
enable_debug_pagealloc();
这个函数是设置内存分配是否需要输出调试信息,如果调用这个函数,当分配内存时,不会输出一些相关的信息。
cpu_hotplug_init();
这个函数是初始化CPU热插拔的功能,所谓CPU热插拔的功能,就是对多个CPU进行动态启用和关闭的功能。比如有4个CPU,当低功耗时可以只开启一个CPU,如果高性能时,就可以把4个CPU同时开启,可以在性能与功耗上达到一个动态的调节。
kmem_cache_init();
这个函数是初始化内核内存的缓存,当初始化完成之后,就可以使用通用内存缓存了。
debug_objects_mem_init();
这个函数是创建调试对象内存缓存,所以紧跟内存缓存初始化后面。
idr_init_cache();
这个函数是创建IDR机制的内存缓存对象。所谓的IDR就是整数标识管理机制(integerIDmanagement)。引入的主要原因是管理整数的ID与对象的指针的关系,由于这个ID可以达到32位,也就是说,如果使用线性数组来管理,那么分配的内存太大了;如果使用线性表来管理,又效率太低了,所以就引用IDR管理机制来实现这个需求。
setup_per_cpu_pageset();
这个函数是创建每个CPU的高速缓存集合数组。因为每个CPU都不定时需要使用一些页面内存和释放页面内存,为了提高效率,就预先创建一些内存页面作为每个CPU的页面集合。
//QQ:9073204 EMAIL:9073204@qq.com
//蔡军生 2012-8-19
//培训文档100元一份