Si un kernel es preventivo o no, depende de lo que desee priorizar, ya que en el kernel de Linux, hay varias cosas que pueden habilitar o deshabilitar la preferencia por separado.
Si su kernel tiene CONFIG_IKCONFIG
y CONFIG_IKCONFIG_PROC
habilitado, puede averiguar su configuración de preferencia a través de /proc/config.gz
(si no tiene esto, algunas distribuciones envían la configuración del kernel en /boot
en su lugar):
$ 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
Si tienes CONFIG_IKCONFIG
, pero no CONFIG_IKCONFIG_PROC
, aún puede sacarlo de la imagen del núcleo con extract-ikconfig
.
Un kernel interrumpible (escritorio de baja latencia) tiene PREEMPT
etiquetado en su nombre de versión (uname -a
). Esto también aparece en /proc/version
y en la cadena "version magic" utilizada para decidir si los módulos pueden o no pueden cargarse en un kernel determinado, p.
mymodule: version magic '3.4.35 mod_unload ARMv7 p2v8 '
should be '3.4.35 preempt mod_unload ARMv7 p2v8 '
No existe tal etiquetado para CONFIG_PREEMPT_VOLUNTARY
, afaik.