gpt4 book ai didi

linux - 各种CPU掩码之间的区别 - Linux内核

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:33 25 4
gpt4 key购买 nike

我正在查看启动代码并遇到了以下掩码。 boot_cpu_init()中设置的

CPU online mask : The number of CPU's available for getting scheduled on
CPU active mask : The number of CPU's on which some task can be migrated to (not very clear as to the difference between online and active)
CPU present mask : Total number of CPU's limited by max cpu's variable
CPU possible mask : Total number of possible CPU's in the system

但我仍然不清楚为什么会出现这些面具。为什么不单独使用 cpu_online_bits() 。这还不足以查看哪个 CPU 可用以及系统可用的 CPU 总数吗?

最佳答案

我有同样的问题,在这里找到了你的帖子。在深入研究之后,我得到了一些关于它们的观点。 CPU热插拔在其中扮演着重要的角色。

'possible' 掩码和'present' 掩码代表静态CPU 资源,'online' 和'active' 代表动态资源。静态资源在编译时或引导阶段声明。它在内核生命周期内不会改变。动态资源将随 CPU 热插拔操作而变化。

有时您可能需要为每个“可能的”CPU 分配或初始化一些其他资源,例如在 blk_softirq_init() 中为每个“可能的”CPU 初始化列表。

从启动时间很难区分 CPU“在线”和“事件”之间的区别,但是我们可以在使 CPU 离线的过程中了解这一点。放下 CPU 的步骤如下图所示 http://image.slidesharecdn.com/cpuhotplugrcuandbig-140320112138-phpapp02/95/lce12-cpu-hotplug-rcu-and-biglittle-22-638.jpg?cb=1395333911

当 CPU 进入第 1 步,即 CPU_DOWN_PREPARE 时,调度程序将其标记为“不活跃”,但此时它仍处于“在线”状态。调度程序此时无法将任何任务迁移到它。 CPU 完全移除后,它不再“在线”。

我不确定你是否还需要这些信息,但在中写下一些更详细的痕迹 http://vh21.github.io/linux/2015/04/28/linux-cpu-mask.html

关于linux - 各种CPU掩码之间的区别 - Linux内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com