Ampere最新的AmpereOne数据中心CPU有高达192个核心,这么多核心本来高兴还来不及呢,但有人发现,核心太多了,Linux受不了了。
据Phoronix报道,Ampere的新CPU核心数太多了,以至于一台双路服务器的核心数能来到384个,然而,Linux系统无法支持这么多核心。
目前,ARM64 Linux内核仅支持最多256个核心。
为了解决这个问题,Ampere提交了一个补丁,提议将Linux内核的核心限制提高到512,它使用一种叫“CPUMASK_OFFSTACK”的方法。
具体来说,Linux可以通过在内存中分配额外的空间,来创建一种特殊的位图,这种位图被称为CPU掩码(CPUMASK)。
CPU掩码用于跟踪和管理系统中的CPU核心。通过分配这些额外的位图,Linux可以“记住”并有效管理超过256个核心,而不需要改变或增加其内核映像的大小。
然后,Linux就能支持有更多核心的CPU,比如Ampere这种提供高达384个核心的服务器。
Ampere家最新的AmpereOne是目前为止,数据中心里核心数最多的处理器。AMD最新的Zen 4c Bergamo最多也只有128核。
所以,Ampere是第一个受到Linux系统限制的多核处理器。
据Phoronix报道,想要把核心数限制提高到512可能还得等等。
早在2021年,就有一个补丁提议将ARM64 CPU的核心限制提高到512,但Linux维护者拒绝了,因为当时还没有能超过256核心的CPU硬件。
乐观估计,要等到2024年会发布的Linux内核6.8,才可能会提高到512核心。
从技术上来看,现在的Linux内核已经支持用CPUMASK_OFFSTACK这种方法来提高CPU核心数量限制了,现在只需要Linux维护者默认启用这一功能即可。