ZONE_MOVABLE

ZONE_MOVABLE是内存热插拔的关键概念,涉及内核配置如MOVABLE_NODE和MEMORY_HOTREMOVE。通过内核日志可以查看其分布,启用需要特定启动参数,如movable_node、kernelcore=mirror和movablecore=nn[KMG],这些参数影响内存区域的划分和热插拔行为。

ZONE_MOVABLE是内核中内存热插拔相关的重要概念之一。

之前从来没有弄明白过,在这里尝试理理思路。

相关内核配置选项

以下两个选项和movable_node相关:

  • MOVABLE_NODE
  • MEMORY_HOTREMOVE

获取ZONE_MOVABLE的分布

内核默认在日志中打印了MOVALBE ZONE的分布,只是如果没有开启的话,该信息为空。

dmesg | grep -A 5 "Movalbe zone start" 

就可以获得该信息。

启用ZONE_MOVABLE的启动参数

内核在默认情况下不会有movable的区域,需要传入内核参数来启用。

这部分的工作集中在函数find_zone_movable_pfns_for_nodes()中。不过变态的是还有好几个内核参数来控制,下面将按照参数的优先级顺序来介绍。

movable_node

该功能从文档中看意思是能够将整个node都热拔,当然有点恐怖。

在这个阶段,我们看到这个参数的作用是按照BIOS/FW的信息作为MOVABLE ZONE的分界。如果BIOS/FW中标出某memblock是可热插拔的,则被划入MOVABLE ZONE。

kernelcore=mirror

该参数的作用是按照mirror的标志为来判断MOVABLE ZONE的分界。

具体什么意思,不清楚。

movablecore=nn[KMG] || kernel_core=nn[KMG]

这两个内核参数可以同时使用,但是只有经过计算后那个大的值起作用。对这两个参数意义的描述在文档memory-hotplug.txt

如果这两个参数的一个生效,那么会按照node数平均分配内存。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值