Risposte:
Il fatto che un kernel sia preventivo o meno dipende da ciò che si desidera anticipare, come nel kernel Linux, ci sono varie cose che possono essere abilitate / disabilitate preventivamente separatamente.
Se il tuo kernel ha CONFIG_IKCONFIG
e CONFIG_IKCONFIG_PROC
abilitato, puoi scoprire la tua configurazione di prelazione attraverso /proc/config.gz
(se non lo hai, alcune distribuzioni forniscono /boot
invece la configurazione del kernel ):
$ 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
Se lo hai CONFIG_IKCONFIG
, ma non CONFIG_IKCONFIG_PROC
puoi ancora estrarlo dall'immagine del kernel con extract-ikconfig
.
Un kernel preemptible (desktop a bassa latenza) è stato PREEMPT
taggato nel nome della sua versione ( uname -a
). Questo appare anche nella /proc/version
e nella stringa "versione magica" usata per decidere se i moduli possono / non possono essere caricati su un dato kernel, ad es
mymodule: version magic '3.4.35 mod_unload ARMv7 p2v8 '
should be '3.4.35 preempt mod_unload ARMv7 p2v8 '
Non esiste tale codifica per CONFIG_PREEMPT_VOLUNTARY
, Afaik.