Çekirdek önleme yapılandırmamı nasıl kontrol edebilirim?


11

Linux çekirdeğimin önleyici veya önleyici olup olmadığını kontrol etmek istiyorum. Böyle bir komutu kullanarak bunu nasıl kontrol edebilirim uname -a?

Yanıtlar:


10

Bir çekirdeğin önleyici olup olmadığı, Linux çekirdeğinde olduğu gibi önemlemek istediğiniz şeye bağlıdır, önleme ayrı olarak etkinleştirilebilen / devre dışı bırakılabilen çeşitli şeyler vardır.

Çekirdeğiniz etkinleştirildiyse CONFIG_IKCONFIGve CONFIG_IKCONFIG_PROCetkinleştirdiyse, preemption yapılandırmanızı şu yolla /proc/config.gzöğrenebilirsiniz (buna sahip değilseniz, bazı dağıtımlar /bootbunun yerine çekirdek yapılandırmasını gönderir ):

$ 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

Varsa CONFIG_IKCONFIG, ancak olmasa bile CONFIG_IKCONFIG_PROC, çekirdek görüntüsüyle birlikte alabilirsiniz extract-ikconfig.


Ahududu içinde harici sensörlü diyalog için sıcaklık istemek için bir çekirdek modülü yaptım. sensörle konuşmak için, gpio pin giriş ve çıkışını belirli bir süre (ms cinsinden) ayarlamalıyım. ve modül iyi çalışıyor. çekirdek modülleri de zamanlayıcı tarafından diğer işlemler tarafından önlenmez, çünkü eğer önlenirse, zamanlama yanlış olur ve sensörden alınan sonuç yanlış olur.
mikmik

2

Önceden tanınabilir bir çekirdek (düşük gecikmeli masaüstü) PREEMPTsürüm adında ( uname -a) etiketlendi . Bu /proc/version, modüllerin belirli bir çekirdeğe yüklenip yüklenemeyeceğine karar vermek için kullanılan "sürüm sihri" dizesinde ve ör.

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

CONFIG_PREEMPT_VOLUNTARYAfaik için böyle bir etiketleme yok .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.