Ответы:
Независимо от того, является ли ядро вытесняющим или нет, зависит от того, что вы хотите выгрузить, как в ядре Linux, есть разные вещи, которые могут включать / отключать вытеснение отдельно.
Если в вашем ядре включено CONFIG_IKCONFIG
и CONFIG_IKCONFIG_PROC
включено, вы можете узнать конфигурацию с вытеснением через /proc/config.gz
(если у вас ее нет, некоторые дистрибутивы поставляют конфигурацию ядра /boot
):
$ 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
Если у вас есть CONFIG_IKCONFIG
, но нет CONFIG_IKCONFIG_PROC
, вы все равно можете получить его из образа ядра с помощью extract-ikconfig
.
Преобразуемое ядро (рабочий стол с низкой задержкой) PREEMPT
помечено в имени своей версии ( uname -a
). Это также появляется в /proc/version
и в строке «version magic», используемой для определения, можно ли / нельзя загружать модули в данное ядро, например
mymodule: version magic '3.4.35 mod_unload ARMv7 p2v8 '
should be '3.4.35 preempt mod_unload ARMv7 p2v8 '
Таких тегов не существует CONFIG_PREEMPT_VOLUNTARY
, afaik.