Jawaban:
Apakah kernel preemptive atau tidak tergantung pada apa yang ingin Anda preempt, seperti pada kernel Linux, ada berbagai hal yang dapat mengaktifkan / menonaktifkan preemption secara terpisah.
Jika kernel Anda telah CONFIG_IKCONFIGdan CONFIG_IKCONFIG_PROCdiaktifkan, Anda dapat mengetahui konfigurasi preemption Anda melalui /proc/config.gz(jika Anda tidak memiliki ini, beberapa distribusi mengirimkan konfigurasi kernel /bootsebagai gantinya):
$ 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
Jika sudah CONFIG_IKCONFIG, tetapi belum CONFIG_IKCONFIG_PROC, Anda masih bisa mengeluarkannya dari kernel image extract-ikconfig.
Kernel preemptible (desktop latensi rendah) telah PREEMPTmemberi tag pada nama versinya ( uname -a). Ini juga muncul di /proc/versiondan dalam string "sihir versi" yang digunakan untuk memutuskan apakah modul dapat / tidak dapat dimuat pada kernel yang diberikan, misalnya
mymodule: version magic '3.4.35 mod_unload ARMv7 p2v8 '
should be '3.4.35 preempt mod_unload ARMv7 p2v8 '
Tidak ada penandaan seperti itu untuk CONFIG_PREEMPT_VOLUNTARY, afaik.