Ich möchte überprüfen, ob mein Linux-Kernel präemptiv oder nicht präemptiv ist. Wie kann ich dies mit einem Befehl überprüfen, z uname -a
.
11
Ob ein Kernel präemptiv ist oder nicht, hängt davon ab, was Sie präemptivieren möchten. Wie im Linux-Kernel gibt es verschiedene Dinge, bei denen die Preemption separat aktiviert / deaktiviert werden kann.
Wenn Ihr Kernel aktiviert CONFIG_IKCONFIG
und CONFIG_IKCONFIG_PROC
aktiviert ist, können Sie Ihre Preemption-Konfiguration über herausfinden /proc/config.gz
(falls dies nicht der Fall ist, wird die Kernel-Konfiguration von einigen Distributionen /boot
stattdessen ausgeliefert):
$ gzip -cd /proc/config.gz | grep PREEMPT
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_PREEMPT_TRACER is not set
Wenn Sie haben CONFIG_IKCONFIG
, aber nicht CONFIG_IKCONFIG_PROC
, können Sie es immer noch mit aus dem Kernel-Image herausholen extract-ikconfig
.
Ein präemptibler Kernel (Desktop mit geringer Latenz) hat
PREEMPT
seinen Versionsnamen (uname -a
) markiert . Dies erscheint auch in/proc/version
und in der Zeichenfolge "version magic", mit der entschieden wird, ob Module auf einen bestimmten Kernel geladen werden können / nicht, zFür
CONFIG_PREEMPT_VOLUNTARY
afaik gibt es keine solche Kennzeichnung .quelle