Réponses:
Que le noyau soit préemptif ou non dépend de ce que vous voulez préempter, comme dans le noyau Linux, il existe différentes choses qui peuvent avoir la préemption activée / désactivée séparément.
Si votre noyau a été activé CONFIG_IKCONFIGet CONFIG_IKCONFIG_PROCactivé, vous pouvez découvrir votre configuration de préemption via /proc/config.gz(si vous ne l'avez pas, certaines distributions livrent la configuration du noyau à la /bootplace):
$ 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 vous l'avez CONFIG_IKCONFIG, mais pas CONFIG_IKCONFIG_PROC, vous pouvez toujours le retirer de l'image du noyau avec extract-ikconfig.
Un noyau préemptif (bureau à faible latence) a PREEMPTmarqué son nom de version ( uname -a). Cela apparaît également dans /proc/versionet dans la chaîne "version magic" utilisée pour décider si les modules peuvent / ne peuvent pas être chargés sur un noyau donné, par exemple
mymodule: version magic '3.4.35 mod_unload ARMv7 p2v8 '
should be '3.4.35 preempt mod_unload ARMv7 p2v8 '
Aucun marquage de ce type n'existe pour CONFIG_PREEMPT_VOLUNTARY, afaik.