Kernel Feature Sched_ext Info

Alexander2

Fleet Admiral
Registriert
Aug. 2014
Beiträge
14.940

Info über Sched_ext​

  • Was ist es? Man kann den Kernel CPU Scheduler austauschen im laufenden betrieb.
  • Wozu? Könnte ggf Audio Knackser beseitigen (war bei mir so mit dem neuen 6.18.1er Kernel), bzw. generell die Performance beeinflussen.
  • Schwierigkeit der Umsetzung? Total einfach wenn ich das so sagen darf. (Wer ANGST vor dem Terminal hat sucht halt nach einer GUI (CachyOS hatte eine)
Ich habe jetzt nicht nachgesehen ab welcher Kernel Version Sched_ext im Kernel integriert ist, aber es sollte wohl auf jedem Aktuellen Linux angekommen sein. Jedenfalls bin ich dem Feature unter CachyOS begegnet, als ich das getestet habe und dort gab es auch jeweils ein paar Kurze Infos dazu was das ist.
Da ich Manjaro nutze (bin nach dem CachyOS besuch nicht dazu gewechselt) habe ich relativ regelmäßig Updates und ich benutze auch relativ neue Kernel, solange sie mir kein Problem bereiten (merkt man ja und man kann reagieren). Mit dem Kernel 6.18.1 der jetzt mit dem letzten Update um die Ecke kam hatte ich dann etwas auffälliges Verhalten beim abspielen von Videos, das eben der Ton ab und zu sprang, also etwas verschluckt wurde. Keine großen Stücke aber auffällig.
Und da der ja auch der nächste LTS Kernel wird, aber noch nicht so bei Manjaro gekennzeichnet ist, wollte ich auch nicht sofort zurück wechseln auf einen vorherigen. Da gibt es mit sicherheit auch noch so einiges an Patches für den Kernel.

Also habe ich erstmal geschaut ob ich mit einem der Scheduler das Problem auf die schnelle weg bekomme :-) und nebenbei noch den scxtop entdeckt, bei dem namen werden einige sicher wissen was der so grob zeigt (einfach ausprobieren). Gewählt habe ich durch nen Schuss ins Blaue den Scheduler scx_flash und das Audio Problemchen war weg, gleichzeitig hat sich beim Spielen von
2025-12-16_21-15.webp


auch kein Auffälliges Problem/Verhalten ergeben. Es lief einfach :-)

Nun habe ich gerade nochmal nach einer Info geschaut was ich da überhaupt gestartet habe und daher auch dieser Thread. Das ist die Seite mit sehr Guter Info zu dem ganzen kram:

https://sched-ext.com

Sieht ziemlich offiziell aus und als Normalsterblicher kann man sich da tatsächlich auch seine Infos herausziehen. In meinem Fall:
scx_flash

Passt sogar nach der Beschreibung erstmal ziemlich gut auf mein Problemchen :D

2025-12-16_21-20.webp


Ich dachte mir das Teilen dieser Infoseite mit euch könnte dem ein oder anderen auch mal helfen.

gestartet einfach per:
2025-12-16_21-22.webp


2025-12-16_21-24.webp
Je nach Distro könnte es sein, das man sich ein Paket installieren muss, bei Manjaro war es das
 
  • Gefällt mir
Reaktionen: Krik, Archivar, Peace und 6 andere
Ich nutze den rust scx_flash cpu scheduler auch schon eine Weile - macht eine gute Figur in z.B. Overwatch.

Das Problem mit den ganzen sched_ext Schedulern ist jedoch, dass die alle früher oder später aussteigen (auch lavd), wenn es um schwerere Aufgaben wie das Kompilieren von firefox, chromium, libreoffice oder dem ganzen System geht.

scx_cosmos ist auch ganz gut - gönnt sich aber an und ab mal eine Gedenk-Sekunde oder länger für das Scheduling und besetzt einen Kern für das Time-Keeping bzw. Scheduling und erhöht daher die permanente Belastung etwas (also auch den Stromverbrauch)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Alexander2
Alexander2 schrieb:
Könnte ggf Audio Knackser beseitigen
Woah! Genau das Problem habe ich bei einem älteren Rechner, wo im Sekundentakt (oder so ähnlich) der Ton kurz knackt, egal ob ein Spiel oder nur ein Spotify-Stream läuft.
Ich werde das mal testen.

Welches Scheduler-Profil hast du gewählt? Cachy bietet mehrere an. Low latency?
 
Oh, ich habs maximal einfach gehalten und nur "sudo scx_flash"
gemacht :D

Im moment bin ich auch auf den scx_lavd gewechselt, nachdem ich die Beschreibungen durchgelesen hatte.
 
bei scx_lavd brechen die fps in Overwatch oder generell (etwas mehr) ein - ist aber schon ein paar Monate her, dass ich den das letzte Mal getestet hatte - scheint auch etwas instabiler (aber mehr in Entwicklung) zu sein als die anderen 2 genannten Scheduler
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Alexander2
Gibt es eigentlich irgendwo einen vernünftigen Test, wo die Scheduler gegeneinander antreten? Z. B. bei alltäglichen Aufgaben, bei Multimedia, bei Spielen, bei schwerem Multitasking, etc.?
Die Beschreibung der Scheduler gibt ein paar Ansätze, ja, aber wenn das am Ende nur, ich sag mal, 1% Änderung bedeutet, macht das den Kohl nicht fett.
 
Da habe ich bisher keinen Test zu gesehen. Also bis auf den A1rm4x oder wie der sich Schrieb auf Youtube, der nur genau einen zusammen mit Counterstrike genutzt hatte um massiv viele FPS zu bekommen.
 
  • Gefällt mir
Reaktionen: Krik
@Krik:

es ist weniger die absolute Leistung - bei den Voll-Last-Szenarien ergibt sich kein großer Unterschied, wie es ausschaut (z.B. Kompilieren, AI, SETI, etc.)

es geht wohl eher um die Burst-Szenarien und den Percentile wie z.B. bei Overwatch und anderen kompetitiven Shootern, wo es merklich besser zu sein scheint als der standard-CPU-Scheduler (auch wenn es jetzt eevdf + bore ist)
 
  • Gefällt mir
Reaktionen: Krik
Letztlich gehts ja beim Scheduler darum die Compute-Units und die Zeit die man darauf rechnen darf auf alle Prozesse/Threads zu verteilen (wobei es ja bei sched_ext vor allem um Kernel-Threads geht, wenn ich richtig verstanden hab).

Und man hat natürlich immer diesen Zielkonflikt, das man auf der einen Seite ja allen Prozessen/Threads die bestmögliche Rechenpower-Zuwendung geben will.

Auf der anderen Seite soll aber halt auch nicht zuviel Zeit für Scheduler-Aufgaben drauf gehen. Also ausgefeilte aber komplizierte Algorithmen die erkennen, welchem Prozess/Thread ich als nächstes Rechenzeit einräume kosten halt auch irgendwo Zeit. Oder auch das verschieben eines Prozesses auf einen anderen CPU-Kern. Das schießt mir kurzfristig ins Bein weil es Zeit kostet, kann aber mittel- oder langfristig sinnvoll sein.

Man hat also immer so ein bisschen das Problem, das egal welche Strategie man wählt das die tendenziell immer nur in bestimmten Szenarien gut funktioniert aber eben zu Ungunsten anderer Szenarien.

In gewissen Szenarien macht ein Scheduler-Wechsel sicher Sinn.
Ansonsten hat man ja auch Möglichkeiten den Scheduler zu beeinflussen. Zum Beispiel, in dem man ihn über nice mitteilt, welcher Prozess/Thread bevorzugt behandelt werden soll.

Darüber hinaus gibts noch ein paar andere Parameter an denen man drehen kann. Siehe dazu auch sched(7)
 
  • Gefällt mir
Reaktionen: Alexander2 und Sensei21
Ich habe gerade festgestellt, dass der scx_flash-Scheduler es nicht mag, wenn man einen externen USB-Hub zu einen anderen Port umsteckt.

Bildschirmfoto_20251219_102514.png

Sollte aber jemand von euch feststellt, dass seine USB-Geräte irgendwie nicht mehr richtig funktionieren, dann schaut mal, ob der Scheduler Probleme hat.

Ich musste ein Mal auf einen anderen Scheduler umstellen, damit die am USB-Hub angeschlossenen Geräte wieder funktionieren. Danach konnte ich scx_flash wieder verwenden.
 
  • Gefällt mir
Reaktionen: Alexander2
Das darf man wohl als Bug bezeichnen, kann ja nicht angehen, das der dabei irgendwie austickt :D

Nach der ganzen Beschreibung von dem System, also das SCHED_EXT ist das ja auch hauptsächlich dazu gedacht, das man mal schneller mit neuen Scheduler Entwicklungen iterieren kann und das testen. also vom Konzept her nach nichtmal für Produktiv Systeme generell :D aber wo es mir passt werde ich es dann doch einfach missbrauchen für meine Zwecke.
 
Zurück
Oben