커널 선점 구성을 어떻게 확인할 수 있습니까? 점형인지 확인하고 싶습니다. 다음과 같은 명령을

Linux 커널이 선점 형인지 비선 점형인지 확인하고 싶습니다. 다음과 같은 명령을 사용하여 이것을 어떻게 확인할 수 uname -a있습니까?



답변

커널이 선점 형인지 여부는 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주어진 커널에서 모듈을로드 할 수 있는지 여부를 결정하는 데 사용되는 “version magic”문자열에 표시됩니다 (예 :

mymodule: version magic '3.4.35 mod_unload ARMv7 p2v8 '
              should be '3.4.35 preempt mod_unload ARMv7 p2v8 '

에 대한 태그가 없습니다 CONFIG_PREEMPT_VOLUNTARY.