Er is een oplossing onderweg naar de standaard Linux 6.4-kernel en ook gemarkeerd voor back-porting naar bestaande stabiele kernelseries om x86-topologierapportage voor Intel Hybrid-systemen te repareren. De topologiefout in de kernel wordt meer uitgesproken voor Meteor Lake-laptops, waar momenteel interne Intel-testlaptops kunnen rapporteren dat de systemen 11 CPU-sockets hebben in plaats van het juiste aantal kernen die allemaal in één CPU-socket zitten.

Hoewel hybride CPU-ontwerpen van Intel sinds eind 2021 gebruikelijk zijn, heeft de Linux-kernel tot nu toe de variabele”smp_num_siblings”niet correct verwerkt, die op zijn beurt wordt doorgegeven aan de gebruikersruimte en uiteindelijk onjuiste informatie kan rapporteren. In het geval van een aankomend Intel Meteor Lake P-platform, zou de Linux-kernel tot nu toe met het algemene lscpu-commando melden dat er 11 CPU-sockets voor het systeem zijn, elk met een enkele kern. In werkelijkheid is het een laptop met één socket met in totaal 16 cores.

Behalve dat de verkeerde informatie wordt verspreid naar de gebruikersruimte voor informatieve doeleinden, kan deze onjuiste behandeling van smp_num_siblings uiteindelijk een impact hebben op beslissingen van de Linux-kernelplanner. Zoals Intel-ingenieur Zhang Rui opmerkte:”Hierdoor wordt verwacht dat de planner ook nogal rare dingen gaat doen.”

Hij legde verder uit met deze hangende patch:

“Traditioneel , hebben alle CPU’s in een systeem een ​​identiek aantal SMT-broers en zussen. Dat verandert met hybride processors waarbij sommige logische CPU’s een broer of zus hebben en andere geen.

Tegenwoordig stelt de CPU-opstartcode de globale variabele smp_num_siblings in wanneer elke CPU-thread wordt gebracht omhoog. De laatste thread die moet worden opgestart, zal deze overschrijven met het aantal broers en zussen van *die* thread. Die laatste thread die moet worden opgestart, zal”winnen”. Als de thread een Pcore is, smp_num_siblings==2. Als het een Ecore is, smp_num_siblings==1.

smp_num_siblings beschrijft of het *systeem* SMT ondersteunt. Het moet het maximale aantal SMT-threads tussen alle kernen specificeren.

Zorg ervoor dat smp_num_siblings het systeembrede maximum vertegenwoordigt aantal broers en zussen door de waarde ervan altijd te verhogen. Laat het nooit afnemen.

Op het MeteorLake-P-platform lost dit een probleem op waarbij de Ecore-CPU’s in geen enkele cpu-zusterkaart worden bijgewerkt, omdat het systeem wordt behandeld als een UP-systeem bij het testen van Ecore-CPU’s.”

blockquote>
Die patch is gisteren opgepikt door TIP’s x86/urgent branch. Deze zal op zijn beurt waarschijnlijk in het weekend worden ingediend bij de Linux 6.4-kernel als een urgente oplossing. De patch is ook gemarkeerd voor back-porting naar bestaande Linux kernel-stabiele versies om ervoor te zorgen dat het aantal SMP-broers en zussen correct wordt gerapporteerd op hybride Intel-platforms.

Categories: IT Info