Apakah sebuah kernel preemptive atau tidak tergantung pada apa yang ingin Anda preemptive, seperti pada kernel Linux, ada berbagai hal yang dapat mengaktifkan/menonaktifkan preemption secara terpisah.
Jika kernel Anda memiliki CONFIG_IKCONFIG
dan CONFIG_IKCONFIG_PROC
diaktifkan, Anda dapat mengetahui konfigurasi preemption Anda melalui /proc/config.gz
(jika Anda tidak memiliki ini, beberapa distribusi mengirimkan konfigurasi kernel di /boot
sebagai 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 Anda memiliki CONFIG_IKCONFIG
, tetapi bukan CONFIG_IKCONFIG_PROC
, Anda masih bisa mengeluarkannya dari imej kernel dengan extract-ikconfig
.
Kernel yang dapat diakhiri (desktop latensi rendah) memiliki PREEMPT
diberi tag dalam nama versinya (uname -a
). Ini juga muncul di /proc/version
dan dalam string "sihir versi" yang digunakan untuk memutuskan apakah modul dapat/tidak dapat dimuat pada kernel tertentu, mis.
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.