News Linux Kernel 6.12 RC1: Mit Echtzeit, Battlemage und QR-Screen-of-Death

Kaito Kariheddo

Redakteur
Teammitglied
Registriert
Dez. 2021
Beiträge
624
  • Gefällt mir
Reaktionen: flo.murr, Deinorius, BrollyLSSJ und 36 andere
Das mit dem Scheduler ist interessant. Bin gespannt, ob ich da auch Unterschiede merke. Und den QR-Screen-of-Death werde ich wohl nie zu Gesicht bekommen, weil Arch einfach total stabil ist. 🙂
 
  • Gefällt mir
Reaktionen: flo.murr, R00kie, Riverxy und 9 andere
  • Gefällt mir
Reaktionen: flo.murr, lofipain, DrCox1911 und eine weitere Person
Sehr schön. Der Sceduler sieht interessant aus. Mal sehen was es bringt, das wird für Spiele sicherlich nicht verkehrt sein.
 
  • Gefällt mir
Reaktionen: flaphoschi
Für CashyOS'ler nichts neues 😎🤭

In Anlehnung an die rege Debatte im Nebentopic von heute.

Sorry, musste einfach sein. 😉
 
  • Gefällt mir
Reaktionen: Zoba, mapropaga, dragnod0 und eine weitere Person
Chocobo schrieb:
Für CashyOS'ler nichts neues 😎🤭

Sorry, musste einfach sein. 😉
Wenn man was CPU-intensives im Hintergrund laufen lassen will, nice(1) gibt es schon seit den 70'ern.

Sorry, musste einfach sein. 😉
 
  • Gefällt mir
Reaktionen: E1M1:Hangar, Zarlak, dasBaum_CH und 3 andere
Krass, wie schnell die Linux-Entwicklung geworden ist.
Finde es immer noch faszinierend, dass die Treiber einfach im Kernel sitzen und das System dann ootb läuft.

Mit ist als Neuling allerdings unklar, wie man nun an diesen Kernel kommt. Mint und Fedora laufen doch auf 6.8?
 
@Sherman789 Fedora bekommt ihn einige Wochen nach finaler Veröffentlichung regulär, bei Mint wirst du wohl auf das nächste Ubuntu-HWE-Update warten müssen oder manuell den Mainline-Kernel nachinstallieren.
 
  • Gefällt mir
Reaktionen: dragnod0 und Sherman789
Bis dato gab es verschiedene Scheduler und bislang musste der Kernel mit einem bestimmten Scheduler gebaut werden. Mit der Sched_ext-Erweiterung wird es möglich werden den Scheduler dynamisch zu laden und an die laufenden Anforderungen anzupassen.
Das ist mal ne ganz Coole Sache...
Hoffe der ACK übernimmt das.
Hatte Linux nie gross am PC laufen, aber für Android doch viel zu viel Zeit in Scheduler testing investiert. hat mit EAS wesentlich abgenommen, bis dann jeder angefangen hat EAS soweit zu tweaken und zu modifizieren^^
Glücklicherweise haben seit ein paar Jahren die Smartphones genügend Saft das egal wie scheisse der Scheduler optimiert ist oder das System verbloated ist das es kaum mehr lagt. Selbst bei 120hz.

Wobei Android 15 ja eh noch auf 6.6 festhängt.
 
  • Gefällt mir
Reaktionen: Zarlak
Interessant wäre vielleicht auch, wenn Valve es in Steam einbaut, dass beim Spielstart automatisch der Scheduler gewechselt wird und beim Beenden wieder zurück auf den vorherigen. Nach Möglichkeit auch noch in den Optionen abschaltbar, falls man das Verhalten nicht möchte.
 
  • Gefällt mir
Reaktionen: Kitsune-Senpai
Das sind interessante und sinnvoll vermittelte Nachrichten.
Ergänzung ()

mibbio schrieb:
Interessant wäre vielleicht auch, wenn Valve es in Steam einbaut, dass beim Spielstart automatisch der Scheduler gewechselt wird und beim Beenden wieder zurück auf den vorherigen. Nach Möglichkeit auch noch in den Optionen abschaltbar, falls man das Verhalten nicht möchte.
Ich verstehe die Denkrichtung. Es wird aber eher besser sein, dass die Anwendungen einen Request oder Präferenz signalisieren können - und der Kernel, Systemd, RT-Kit oder DBus (mit Überblick über die Gesamtlage) entscheiden. Genau so wie Prozessen und Thread vom Kernel eingeplant werden :)
Man weiß als Programmier nicht, wann man dran kommt, ist aber auch nicht meine Aufgabe. Ich reiche meine Arbeit ein und warte drauf, dass ich sie wieder bekomme.

Die einzelne Anwendung darf und sollte das nicht bestimmen.
Ergänzung ()

Chocobo schrieb:
Für CashyOS'ler nichts neues 😎🤭
Und wie da beschrieben, kann man deswegen auf Cashy verzichten. Gerade als Neuling und Anwender mit beschränkter Lebenszeit.

Wenn ein Patch sinnvoll ist, landet der im Kernel für alle. Sonst rennt man als einzelner Anwender dem nächsten Hype hinterher.

Wieso eigentlich CashyOS? Das ist eine Derivat von Arch. Und das ist eine Distribution. Kein eigens Betriebsystem. Bewusst falsche Fachbegriffe, Übertreibung und Marketing. Wie ich das dick habe.

Linux (oder spezifisch GNU/Linux) ist ein Betriebssystem. MacOS ist ein Betriebssystem. FreeBSD ist ein Betriebssystem.

Tut mir leid wenn ich bissig bin. Aber bewusst übertreiben und Begriffe zu verdrehen ist nicht in Ordnung. Ich fasse mich da auch an die eigene Nase, gerade einfache Worte wie „sehr“ sollte man sich aufheben für Ausnahmen. Tue ich leider auch nicht.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Kitsune-Senpai, Deinorius, Lotsenbruder und 6 andere
flaphoschi schrieb:
und der Kernel, Systemd, RT-Kit oder DBus (mit Überblick über die Gesamtlage) entscheiden. Genau so wie Prozessen und Thread vom Kernel eingeplant werden
Aber ist dieses Feature mit dem Wechsel des Schedulers nicht gerade auch dafür gedacht, damit der Nutzer entscheiden kann, dass er gerade eine Situation hat, bei der ein anderer Scheduler die Arbeit anders verteilt?

Das System selber kann doch schlecht hellsehen, ob jetzt ein Scheduler benötigt wird, der Vordergrundanwendung X mehr/öfter Rechenzeit zuteilt als dem parallel laufenden Komipliervorgang oder Videoencoder oder ober der Nutzter für für diese Tasks möglichst viel Rechenleistung haben will und dafür in Kauf nimmt, dass der Browser oder das Spiel dafür vorübergehend etwas zäher läuft.
 
mibbio schrieb:
Aber ist dieses Feature mit dem Wechsel des Schedulers nicht gerade auch dafür gedacht, damit der Nutzer entscheiden kann, dass er gerade eine Situation hat, bei der ein anderer Scheduler die Arbeit anders verteilt?
Richtig. Stand heute ist es ja schon so, dass der Nutzer zwischen den verschiedenen fest im Kernel enthaltenen Schedulern wechseln kann, je nach Bedarf und Wunsch.

Und sched_ext macht es jetzt halt möglich, weitere Scheduler nutzen zu können, ohne dass sie fester Teil des Kernels sein müssen.
 
stefan92x schrieb:
Und sched_ext macht es jetzt halt möglich, weitere Scheduler nutzen zu können, ohne dass sie fester Teil des Kernels sein müssen.
Das ist eigentlich der Hauptgrund.
Andere Scheduler gab es ja vorher bereits zu Hauf.
Das blöde an der ganzen Geschichte ist nur das wenn jemand Ahnung hat wie man einen Scheduler schreibt, er auch weiss wie man nen Kernel kompiliert.
Der grösste Vorteil davon ist das man trotz Stock Kernel dann custom Scheduler zum laufen bekommt. Was nur für Android wirklich wichtig ist.
 
mibbio schrieb:
Aber ist dieses Feature mit dem Wechsel des Schedulers nicht gerade auch dafür gedacht, damit der Nutzer entscheiden kann, dass er gerade eine Situation hat, bei der ein anderer Scheduler die Arbeit anders verteilt?
Ich habe die Dokumentation nicht gelesen!
Aber überfliegen wir es mal:

sched_ext is a Linux kernel feature which enables implementing and dynamically loading safe kernel thread schedulers in BPF…

Threads? Nicht generell Prozesse.

Implementing application-specific schedulers and improving CFS are not conflicting goals. Scheduling features explored with sched_ext which yield beneficial results, and which are sufficiently generalizable, can and should be integrated into CFS. However, CFS is fundamentally designed to be a general purpose scheduler, and thus is not conducive to being extended with some highly targeted application or hardware specific changes.

One of our main goals was to lower the barrier to entry for experimenting with the scheduler. sched_ext provides ergonomic callbacks and helpers to ease common operations such as managing idle CPUs, scheduling tasks on arbitrary CPUs, handling preemptions from other scheduling classes, and more. While sched_ext does require some ramp-up, the complexity is self-contained, and the learning curve gradual. Developers can ramp up by first implementing simple policies such as global weighted vtime scheduling in only tens of lines of code, and then continue to learn the APIs and building blocks available with sched_ext as they build more featureful and complex schedulers.

Das Ding ist für Anwendungsentwickler und zum Experimentieren. Es soll wohl eben nicht den CFS ersetzen. Sondern dynamisch Änderungen am Thread-Scheduling für einen Prozess ermöglichen. Der CFS-Scheduler soll sich wohl wie gehabt um das System kümmern. Wobei der CFS schon von weiterer Entwicklung profitieren kann.


https://github.com/sched-ext/scx/blob/main/OVERVIEW.md

Vereinfacht:
Prozesse sind laufende Anwendungen, können neue Prozesse forken (mit eigenem Speicher) erstellen oder „nur“ neue Threads (kein eigener Speicher) nutzen.

Wer seinem Spiel Ressourcen zuweisen möchte, ist mit Control-Groups (CGroups) bedient. Das ist für Anwender. Darum kümmert sich aber schon Flatpak bzw. Docker. Oder man nimmt die alten Werkzeuge, also „nice“. Endanwender rate ich mal lässig, nicht zu tun ist richtig. Lasst es :)

Ausflug:
Ich nutze Control-Groups gerne mal um Webbrowser auf 1024 MB Hauptspeicher zu limitieren[1], der Kernel nimmt es nicht ganz so genau (aus Gründen) und ein paar Kilobyte später gibt es eine amtliche Hinrichtung mit Ansage. Wohldefiniertes Verhalten. Kein OOM-Killer, kein Risiko für das System oder kritische Anwendungen.

Oder man gibt Prozessorzeit vor, die Auslastung, die I/O zur Disk oder die I/O zum Netzwerk.

Für Endanwender ist das nichts. Darum kümmern sich hoffentlich zunehmend Entwickler und Paketmaintainer. Bei Systemd und Flatpak sehen wir das schon. In einer idealeren Welt wissen wir wie viel Ressourcen wir haben, was die Anwendung nutze sollte und machen dann spezifische Vorgaben.

PS: Control-Groups sind immer noch viel zu wenig genutzt. Damit kann man wohldefiniertes Verhalten vorgeben. So viel Speicher das Multi-User-Target, so viel GDM und GNOME, genau so viel für die Anwendung X, Y, Z. Das ist angenehm für den Anwender oder rettet Menschenleben bei kritischen Systemen. Der OOM-Killer ist nur die letzte Notwehr des Kernel, mit zahlreichen unbeteiligten Opfern.

[1] Ich wusste, dass da ein Speicherleck ist.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Deinorius, Miuwa, denonom und eine weitere Person
flaphoschi schrieb:
Der OOM-Killer ist nur die letzte Notwehr des Kernel, mit zahlreichen unbeteiligten Opfern.
Wenn du keinen OOM-Killer willst dann schalte einfach Memory Overcommit ab.
 
Sched_ext wurde in den Kernel aufgenommen für Experimente mit Schedulern und deren Entwicklung nicht zur Nutzung vom Endanwender.

Ein preemt_rt Kernel hat keinen höheren Durchsatz als ein non rt Kernel. Er garantiert lediglich Timelimits. Den höchsten Durchsatz bietet weiterhin ein Kernel mit niedriger Herzzahl (non rt).
 
  • Gefällt mir
Reaktionen: jb_alvarado und flaphoschi
Zurück
Oben