最近报道的大修x86CPU拓扑码为了清理代码,在Linux6.9中已经合并了相当多的代码。除了其他好处外,这种改进的拓扑码还适当地考虑了现代英特尔酷睿混合系统,该系统混合了P和无超线程的E内核。
正如Thomas Gleixner在Pull请求中所解释的那样:
APIC枚举和拓扑评估返工:
当前的实现有几个缺点:
-它无法正确处理混合系统。
-处理CPU编号分配的APIC注册码位于APIC代码的中间,与拓扑评估分离。
-枚举APICS、ACPI、MPPARSE和来宾特定的各种机制,在它们认为合适的情况下调整全局变量,或者在XENPV的情况下完全绕过通用机制。
-CPUID拓扑评估代码散布在供应商代码中,并在每次热插拔操作时重新评估全局变量。
-在启动AP之前,无法分析启动CPU上的拓扑。这给像PERF这样的基础设施带来了问题,它需要预先确定某些方面的大小,或者如果可能的话,可以进行简化。
-APIC接纳和CPU编号关联逻辑难以理解且过于复杂,需要在启动后保留,而不是在APIC枚举后立即完成。
此更新解决了这些缺点。
此拉入请求有关于这个由76个补丁组成的大返工的所有细节。该代码已经过了广泛的测试,所以希望没有--或最小的--后果。
Linux 6.9 is shaping up to be quite a feature-packed release that will be out as stable around the middle of the year.