在非对称系统上使用最佳CPU
Dietmar Eggemann 发布了来自 Quentin Perret 的一个补丁,以利用 非对称多处理器 (AMP) 系统上的节能 CPU。 AMP 与 SMP(对称多处理器)系统的区别在于,SMP 系统仅使用一种 CPU 的多个实例,而 AMP 系统可能使用速度、功能集等不同的 CPU。
Quentin 的补丁旨在利用 AMP 系统上 CPU 之间的功耗差异。 它试图识别尚未被进程饱和的最有效 CPU,并将新唤醒的进程分配给它。 如果没有 CPU 符合要求,则将使用标准的 SMP 类型处理器分配方法。
Dietmar 解释说:“通过估计将任务放置在每个候选 CPU 上对系统级活动能量的影响,来实现为任务选择最节能的 CPU。 如果相对于 prev_cpu 可以节省足够多的能量,则选择能量方面最好的 CPU。”
他承认,这种算法是一种蛮力方法,只能在 CPU 数量相对较少的系统上良好工作。 他说:“这个补丁试图做一些有用的事情,因为编写一个在广泛的架构上表现合理的快速启发式算法并非易事。”
Patrick Bellasi 和 Joel Fernandes 对该补丁没有严重的异议,并提出了一些技术建议。 讨论深入探讨了各种技术问题和解决这些问题的具体方法,没有人提出任何有争议的问题。
在这种情况下,补丁可能看起来像是缺乏反对意见就可以让它进入内核树,但实际上,它还没有经过 Linux 大佬们的彻底检查。 一旦各个贡献者在没有更深入的反馈的情况下尽可能地优化了补丁,他们可能会将其发送到上层,以便包含在主源代码树中。 届时,安全人员将全力以赴,寻找恶意用户可能强制将所有进程都分配到仅一个特定 CPU 上的方法(本质上是发起拒绝服务攻击)或类似的事情。 即使该补丁通过了审查,其他大型内核人员之一,甚至是 Linus Torvalds,也可能会以它应该代表大规模和小规模系统的解决方案为由拒绝该补丁。
无论如何,内核中都需要像 Dietmar 和 Quentin 的补丁这样的东西,因为充分利用系统的全部能力总是好的。 如今,许多设备都配备了非对称 CPU 和其他怪癖,这些怪癖从未出现在早期的通用系统中。 因此,看到这种补丁进入树中绝对有很多好处。
注意:如果您在上面被提及并且想要在评论区上方发布回复,请将您的回复文本发送至 ljeditor@linuxjournal.com。