Como posso verificar minha configuração de preempção do kernel?

9

Eu quero verificar se meu kernel Linux é preventivo ou não preemptivo. Como posso verificar isso usando um comando, algo como uname -a ?

    
por daehee 11.11.2013 / 05:32

2 respostas

10

Se um kernel é preemptivo ou não depende do que você deseja evitar, como no kernel Linux, existem várias coisas que podem ter a preempção ativada / desativada separadamente.

Se o seu kernel tem CONFIG_IKCONFIG e CONFIG_IKCONFIG_PROC habilitado, você pode descobrir sua configuração de preempção através de /proc/config.gz (se você não tem isso, algumas distribuições enviam a configuração do kernel em /boot ): / p>

$ 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 você tem CONFIG_IKCONFIG , mas não CONFIG_IKCONFIG_PROC , você ainda pode tirá-lo da imagem do kernel com extract-ikconfig .

    
por 11.11.2013 / 06:34
2

Um kernel preemptível (área de trabalho de baixa latência) tem PREEMPT marcado em seu nome de versão ( uname -a ). Isto também aparece em /proc/version e na string "version magic" usada para decidir se os módulos podem / não podem ser carregados em um determinado kernel, por exemplo.

mymodule: version magic '3.4.35 mod_unload ARMv7 p2v8 ' 
              should be '3.4.35 preempt mod_unload ARMv7 p2v8 '

Não existe tagging para CONFIG_PREEMPT_VOLUNTARY , afaik.

    
por 23.03.2016 / 11:22

Tags