回答:
カーネルがプリエンプティブであるかどうかは、Linuxカーネルのようにプリエンプトしたいものに依存します。プリエンプションを個別に有効/無効にできるさまざまなものがあります。
あなたのカーネルが持っている場合CONFIG_IKCONFIGとCONFIG_IKCONFIG_PROC有効に、あなたはを通して、あなたのプリエンプションの設定を見つけることができます/proc/config.gz(あなたはこれを持っていない場合は、いくつかのディストリビューションは、カーネルの設定を出荷する/boot代わりに):
$ 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
持っていても持ってCONFIG_IKCONFIGいなくCONFIG_IKCONFIG_PROCても、でカーネルイメージから取り出すことができますextract-ikconfig。
プリエンプティブルカーネル(低遅延デスクトップ)はPREEMPT、バージョン名(uname -a)でタグ付けされています。これ/proc/versionは、指定されたカーネルにモジュールをロードできるかどうかを決定するために使用される「バージョンマジック」文字列にも表示されます。たとえば、
mymodule: version magic '3.4.35 mod_unload ARMv7 p2v8 '
should be '3.4.35 preempt mod_unload ARMv7 p2v8 '
のようなタグ付けは存在しませんCONFIG_PREEMPT_VOLUNTARY、afaik。