Wie preemptiv ist Dein Kernel?

  • Welche Option ist in Deinem Kernel eingestellt? 13

    1. PREEMPT_DYNAMIC (13) 100%
    2. PREEMPT_NONE (0) 0%
    3. PREEMPT_VOLUNTARY (0) 0%
    4. PREEMPT_RT (0) 0%
    5. PREEMPT_DESKTOP (0) 0%

    Hallo, ich befasse mich gerade mit den verschiedenen Kernel Versionen für Linux. Deren Module, Varianten und was die Parameter dahinter bedeuten. Nun habe ich gelesen, dass u.A. die hinterlegte Preemtion Option dafür zuständig ist, den Grad der Multitasking-Fähigkeit zu beeinflussen.

    Kurze Erläuterung: https://de.abcdef.wiki/wiki/Kernel_preemption

    Folgende Modis stehen hier zur Verfügung:

    • PREEMPT_NONE: Der Kernel ist nicht preemptiv. Er kann nicht unterbrochen werden, um die Ausführung anderer Aufgaben zu ermöglichen.
    • PREEMPT_VOLUNTARY: An bestimmten Punkten lässt er sich unterbrechen - für schnellere Reaktionszeit, aber keine volle Echtzeitfähigkeit.
    • PREEMPT_DYNAMIC: Zwischenstufe oder Kompromiss zwischen den beiden oben genannten. Hier kann er unterbrochen werden um andere Aufgaben auszuführen. Bessere Reaktionsfähigkeit mit einer gewissen Echtzeitfähigkeit, ohne die Stabilität zu gefährden.
    • PREEMPT_RT: RealTime bietet die höchste Echtzeitfähigkeit. Ein Echtzeit-Kernel hat für diese Option allerdings ein Patch-Set, welches weitere, komplexere Angaben im Hauptzweig benötigt.
    • PREEMPT_DESKTOP: Erweiterter Modus von Voluntary. Weitere Preemtion-Punkte werden hier im Code quasi "frei geschaltet" um die Reaktionszeit auf Desktop-Systemen zu verbessern.

    Wie fast Alle hier (denke ich zumindest) verwende ich den Standard Kernel meiner Distribution. Die ausgelieferte Version ist hier nebensächlich.

    Eine Ausgabe von uname -v zeigt:

    Mein verwendeter Kernel ist mit der "dynamic" Option parametriert worden. Nun habe ich allerdings gelesen, dass für ein Desktop-System wie ich es primär nutze, mit einer Umgebung wie GNOME, xfce, MATE oder KDE und die vielzahl an Programmen die man so braucht, eine PREEMPT_DESKTOP Option dazu beitragen kann, ein flüssigeres Benutzererlebnis zu gewährleisten. Die Systemantwort soll auf Benutzereingaben und Desktop-Aufgaben verbessert sein. Nicht das mein System jetzt langsam ist, ganz im gegenteil. Aber, ich bin darauf bedacht, das die Software-Ebene auf den bestmöglichen Weg und am effektivsten mit der Hardware kommuniziert. Und natürlich alle Features voll ausnutzen. Auch denke ich, um so optimierter das Betriebssystem läuft und z.B. die CPU nutzt, die Last und somit der Stromverbrauch verbessert wird. Für meine PI's oder z.B. kleine ThinClients nicht uninteressant.

    Daher interessiert mich jetzt, welche Option wird am meisten in der Standardvariante ausgeliefert, ob nun Distributed, Mainline, Stable oder Vanilla spielt keine Rolle.

    Der einfachste Weg auszulesen, wie der Kernel konfiguriert (ausgeliefert) wurde ist, man schaut sich die config.gz Datei im /proc Verzeichnis an. Mit diesem Befehl sieht die Ausgabe wie folg aus:

    zcat /proc/config.gz | grep PREEMPT

    Wer in der Abstimmung einmal angibt, welche Option in seinem Kernel eingestellt ist, spart mir schon mal viel Zeit und Arbeit, diverse Distributionen in einer VM zu installieren und selber nach zu schauen. Zumindest hat man eine Angabe, welche Option am meisten vertreten ist. Wer die Angabe "PREEMPT_DESKTOP=y" bei sich erhält, würde ich mich freuen, wenn dann noch gepostet wird, welche Distribution und welcher Kernel verwendet wird.

    Danke für Eure Forschungsergebnisse :)

  • Code
    gonzo on arch-linux ~ 
     ->  uname -v
    #1 SMP PREEMPT_DYNAMIC Tue, 10 Oct 2023 21:10:21 +0000

    Archlinux kernel 6.5.7-arch1-1

  • Void Linux kernel 6.5.7_1

  • uname -v
    #34~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep  7 13:12:03 UTC 2

    Display Spoiler

    Heißt es nicht eigentlich "präemptiv" ?

    Hardware

    terra PC-Micro 6000C GREENLINE von Wortmann AG mit Intel Core i5-1334U / Intel Iris Xe Graphics / SODIMM Samsung M425R2GA3PB0-CWM 2 x 16 GB = 32 GB / WD Red SN700 NVMe SSD 2 x 500 GB = 1 TB / Mainboard Clevo R100AU mit UEFI von insyde Software an LG 27U59 4k Ultra-HD, 27",16:9 / Das Keyboard 6 Pro Kabel / ergoleben VM Maus kabellos - rechts - groß / brother MFC-L2710DN / Fritz!Box 6490 Cable via LAN, 250 MBit Down / 25 MBit Up, Vodafone Kabel Deutschland

  • Endeavour Kernel

    Code
    #1 SMP PREEMPT_DYNAMIC Tue, 10 Oct 2023 21:10:21 +0000


    Mainboard: MSI Z170-A Pro

    Prozessor: Intel i7 6700K

    Grafikkarte: AMD RX 7800 XT

    OS: EndeavourOS

    Desktop: KDE

  • Code
    ╭─ktt73@KTTs-Kiste /home/ktt73  ‹system› 
    ╰─$ uname -v
    #1 ZEN SMP PREEMPT_DYNAMIC Tue, 10 Oct 2023 21:09:57 +0000

    Garuda 6.5.7-zen1-1-zen

    ________________________________________________________________________________

    PC | AMD Ryzen 7 3700X - NVIDIA GeForce RTX 2070 Super - 32 GB RAM - 1 TB NVME - 1 TB HDD - ArchLinux

    Lappi | Intel i3 - 16 GB RAM - 128 GB SSD - ArchLinux

    Homi | Intel i3 - 4 GB RAM - 1x 128 GB SSD - 2x 4 TB Seagate IronWolf HDD im RAID1 - Debian 13 mit OMV8 und Docker

  • Da Debian und Void hier schon anzeigt wurden (und bei mir genauso aussehen),

    hier noch ein von einer meiner Linux Mint Kisten via cat /boot/config-5.15.0-86-generic

    erzeugtes Ergebnis (zur Kürze die zugehörigen Zeilen herauskopiert)

    ... und das wars dann auch schon.

    Keine Alternativen ? Kein Mitleid !

  • Bei mir dass Gleiche

    Code
    #1 SMP Fri May 20 08:26:00 CEST 2022

    Kernel Version 5 hat diese Option noch gar nicht.


    Am Laptop gibts bei Kernel 6.1 nur 3 Auswahlmöglichkeiten.


    Die Meisten Distributionen werden hier Desktop nutzen da es auch vom Kernel selber Empfohlen wird und es damit die wenigsten Probleme geben wird.

    Noch dazu wird in meinen Augen eine Umstellung dieser Option nicht viel mehr Leistung bringen.

    Denn was bringt es diese Option hier zu "Optimieren" aber der Compiler mit dem der Kernel gebaut wird läuft auf -march=nativ. Auch die Software wurde Allgemein übersetzt ist also überhaupt nicht Optimiert worden beim compilieren.

    Wenn die Low-Latency Desktop Option gesetzt wird muss dass komplette System darauf optimiert werden und ist wohl eher für besondere PC Configurationen.

    Denn meistens wird wohl bei einem Otto Normal User dass System nicht so enorm und auch dauerhaft ausgelastet sein.

  • Die Meisten Distributionen werden hier Desktop nutzen da es auch vom Kernel selber Empfohlen wird und es damit die wenigsten Probleme geben wird.

    faxxy Das war auch meine Vermutung, aber bei den meisten ist wie Du siehst der Modus Dynamic gewählt, anstatt Desktop. Und das wundert mich.

  • faxxy Das war auch meine Vermutung, aber bei den meisten ist wie Du siehst der Modus Dynamic gewählt, anstatt Desktop. Und das wundert mich.

    Wie von dir geschrieben ist es ein kompromiss zwischen geschwindigkeit und stabilität. Deswegen werden die das einsetzen denke ich mal.

  • So hab mir heute aus Spaß mal einen Kernel (Version 6.1.53-r1) mit Low-Latency Desktop gebaut.

    Hier der Kernel mit Voluntary Kernel Preemption (Desktop)

    Code
    #2 SMP PREEMPT_DYNAMIC Mon Oct 16 06:30:58 CEST 2023

    Hier die Einstellungen dazu

    und zum Vergleich der Kernel mit Preemptible Kernel (Low-Latency Desktop)

    Code
    #3 SMP PREEMPT_DYNAMIC Mon Oct 16 07:11:39 CEST 2023

    Hier wieder die Einstellungen dazu

    Wie man sieht sind es unterschiedliche Kernel Configurationen. Es steht jedoh bei beiden PREEMPT_DYNAMIC.

    Ich weis nicht ob dass ein Version 6.1 Bug ist, ich hab im Moment auch keine Zeit und Lust auf einen unstable Kernel zu wechseln um es zu testen.

    Ach und zu den Verschiedenen Modis die in Post 1 angesprochen wurden, ja es gibt 5 aber die wenigsten werden zwischen diesen Wechseln können da es im Normalen Kernel nur 3 Modis gibt. Die letzten beiden Modis kann man nur mit einem RealTime Kernel und dem Patchset dazu auswählen.


    Quelle: Preemption Models

  • Code
    #1 SMP PREEMPT_DYNAMIC Debian 6.5.3-1 (2023-09-13)


    Laptop Debian trixie/sid

    GEEKOM A7 - Linux Mint 22.3 | XMG Laptop - Fedora 44 KDE | Mac Mini M4 Pro | MacBook Pro M4 Pro | iPad Pro 12.9

    - I want him in the games until he dies play.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!