Ein neuer Fix für den Linux Kernel Scheduler, der auf Probleme mit der Cache-Aware Load Scheduling auf Hybrid-CPUs abzielt, wurde als Teil der Linux 7.3-rc2 Kernel-Testversion veröffentlicht. Das Update behebt Leistungsprobleme, die auftreten können, wenn Aufgaben auf kleinere Kerne in Systemen mit großen und kleinen Kernen zugewiesen werden.
Cache-Aware Scheduling ist eine Kernel-Funktion, die entwickelt wurde, um die Leistung zu verbessern, indem verwandte Aufgaben auf CPU-Kernen gruppiert werden, die sich denselben letzten Cache (LLC) teilen, wodurch die Latenz reduziert und Cache-Bouncing vermieden wird. Allerdings stellte Intel-Ingenieur Tim Chen fest, dass dieses Scheduling auf Hybrid-CPUs manchmal dazu führen kann, dass Aufgaben den weniger leistungsstarken 'Little'-Kernen zugewiesen werden, was einen Leistungsengpass erzeugt.
Laut Chen: „Cache-aware Load Balancing verzerrt Aufgaben in Richtung ihres bevorzugten LLC. In asymmetrischen CPU-Kapazitätssystemen (z. B. big.LITTLE) kann das Ziel-LLC CPUs enthalten, die zu klein sind, um die Aufgabe auszuführen. Das Verschieben der Aufgabe dorthin macht sie zu einem Fehltritt, der einen Cache-Localitätsgewinn gegen einen Kapazitätsverlust eintauscht, der sich negativer auf die Leistung auswirkt.“
Der von Chen implementierte Fix umfasst zwei Prüfungen: `can_migrate_llc_task()`, die eine Migration zu einer Ziel-CPU verhindert, wenn die Aufgabe nicht passen würde, und `alb_break_llc()`, die verhindert, dass Aufgaben während des aktiven Balancierens auf ungeeignete CPUs verschoben werden. Diese Prüfungen werden speziell auf Hybridprozessoren angewendet, während symmetrische Systeme unberührt bleiben. Aufgaben, die bereits nicht in ihre aktuelle CPU passen, werden von der vorhandenen LLC-Richtlinie behandelt, und Fehltrittaufgaben werden während des Load Balancings priorisiert.
Originale Berichterstattung lesen
💬 Kommentare
📜 Kommentar-Richtlinie