Saya ingin memeriksa apakah kernel Linux saya adalah preemptive atau non-preemptive. Bagaimana saya bisa memeriksa ini menggunakan perintah, sesuatu seperti uname -a
?
11
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_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 /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 sudah CONFIG_IKCONFIG
, tetapi belum CONFIG_IKCONFIG_PROC
, Anda masih bisa mengeluarkannya dari kernel image extract-ikconfig
.
Kernel preemptible (desktop latensi rendah) telah
PREEMPT
memberi tag pada 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 yang diberikan, misalnyaTidak ada penandaan seperti itu untuk
CONFIG_PREEMPT_VOLUNTARY
, afaik.sumber