Ein Fix ist auf dem Weg zum Hauptkernel von Linux 6.4 und auch für die Rückportierung auf bestehende stabile Kernelserien vorgesehen, um die x86-Topologieberichterstattung für Intel Hybrid-Systeme zu reparieren. Der Topologiefehler im Kernel wird bei Meteor-Lake-Laptops deutlicher, da interne Intel-Testlaptops derzeit Systeme mit 11 CPU-Sockeln melden können, statt der richtigen Anzahl von Kernen, die alle in einem CPU-Sockel enthalten sind.
Während Intel-Hybrid-CPU-Designs seit Ende 2021 üblich sind, hat der Linux-Kernel die Variable „smp_num_siblings“ bisher nicht richtig verarbeitet, die wiederum an den Benutzerbereich weitergegeben wird und am Ende falsche Informationen melden kann. Im Falle einer kommenden Intel Meteor Lake P-Plattform würde der Linux-Kernel bisher mit dem allgemeinen Befehl lscpu melden, dass dem System 11 CPU-Sockel mit jeweils einem einzelnen Kern zur Verfügung stehen. In Wirklichkeit handelt es sich um einen Single-Socket-Laptop mit insgesamt 16 Kernen.
Abgesehen davon, dass falsche Informationen zu Informationszwecken an den Benutzerbereich weitergegeben werden, könnte diese unsachgemäße Behandlung von smp_num_siblings letztendlich Auswirkungen auf die Entscheidungen des Linux-Kernel-Schedulers haben. Wie Intel-Ingenieur Zhang Rui kommentierte: „Es wird erwartet, dass dies auch dazu führt, dass der Scheduler ziemlich seltsame Dinge tut.“
Er erklärte weiter mit diesem ausstehenden Patch:
“Traditionell , haben alle CPUs in einem System die gleiche Anzahl von SMT-Geschwistern. Das ändert sich bei Hybridprozessoren, bei denen einige logische CPUs ein Geschwister haben und andere keines.
Heute setzt der CPU-Bootcode die globale Variable smp_num_siblings, wenn jeder CPU-Thread aufgerufen wird Der letzte zu bootende Thread überschreibt ihn mit der Anzahl der Geschwister dieses Threads. Der letzte zu bootende Thread wird „gewinnen“. Wenn der Thread ein Pcore ist, ist smp_num_siblings==2. Wenn es ein Ecore ist, ist smp_num_siblings==1.
smp_num_siblings beschreibt, ob das *System* SMT unterstützt. Es sollte die maximale Anzahl von SMT-Threads unter allen Kernen angeben.
Stellen Sie sicher, dass smp_num_siblings das systemweite Maximum darstellt Anzahl der Geschwister, indem der Wert ständig erhöht wird. Lassen Sie es niemals zu, dass es abnimmt.
Auf der MeteorLake-P-Plattform wird dadurch ein Problem behoben, bei dem die Ecore-CPUs in keiner CPU-Geschwisterkarte aktualisiert werden, da das System beim Testen von Ecore-CPUs als UP-System behandelt wird.“
Dieser Patch wurde gestern vom x86/urgent-Zweig von TIP übernommen. Dieser wird wiederum wahrscheinlich am Wochenende als dringender Fix an den Linux 6.4-Kernel übermittelt. Der Patch ist auch für die Rückportierung auf bestehendes Linux markiert Kernel-stabile Versionen, um sicherzustellen, dass die Anzahl der SMP-Geschwister auf Intel-Hybridplattformen ordnungsgemäß gemeldet wird.