Linux 6.9 Lands Reworked Topology Code For Better Hybrid CPU Support
The recently covered overhaul of the x86 CPU topology code to clean-up quite a code mess has been merged for Linux 6.9. Among other benefits, this improved topology code properly accounts for modern Intel Core hybrid systems with a mix of P and HT-less E cores.
Sent in and merged on Monday was the "x86/apic" changes from TIP.git that overhaul the topology code. As explained by Thomas Gleixner in the pull request:
This pull request has all the details on this big rework that consists of 76 patches. The code has been extensively tested so hopefully none -- or minimal -- fallout.
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.
Sent in and merged on Monday was the "x86/apic" changes from TIP.git that overhaul the topology code. As explained by Thomas Gleixner in the pull request:
Rework of APIC enumeration and topology evaluation:
The current implementation has a couple of shortcomings:
- It fails to handle hybrid systems correctly.
- The APIC registration code which handles CPU number assignments is in the middle of the APIC code and detached from the topology evaluation.
- The various mechanisms which enumerate APICs, ACPI, MPPARSE and guest specific ones, tweak global variables as they see fit or in case of XENPV just hack around the generic mechanisms completely.
- The CPUID topology evaluation code is sprinkled all over the vendor code and reevaluates global variables on every hotplug operation.
- There is no way to analyze topology on the boot CPU before bringing up the APs. This causes problems for infrastructure like PERF which needs to size certain aspects upfront or could be simplified if that would be possible.
- The APIC admission and CPU number association logic is incomprehensible and overly complex and needs to be kept around after boot instead of completing this right after the APIC enumeration.
This update addresses these shortcomings.
This pull request has all the details on this big rework that consists of 76 patches. The code has been extensively tested so hopefully none -- or minimal -- fallout.
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.
3 Comments