【发布时间】:2014-02-15 16:22:30
【问题描述】:
我正在浏览linux内核中的内存初始化代码,我可以看到空闲的数量 将内存节点中每个内存区域的每个订单和迁移类型的页数设置为 0。
static void __meminit zone_init_free_lists(struct zone *zone)
{
int order, t;
for_each_migratetype_order(order, t) {
INIT_LIST_HEAD(&zone->free_area[order].free_list[t]);
zone->free_area[order].nr_free = 0;
}
}
我无法弄清楚列表是如何设置为正确状态的,因为哪个顺序有多少默认值 要开始的页面,或者我们从最高顺序的所有条目开始。
在书中,我读到了以下内容:
空闲页数(nr_free)目前仍定义为0,这显然不反映 真实情况。直到 bootmem 分配器被禁用并且正常的伙伴才设置正确的值 分配生效。
有人能指出这部分设置为默认起始值的实际位置吗?
非常感谢
【问题讨论】:
标签: c linux memory-management kernel