मैं अपनी कर्नेल प्रीमेंशन कॉन्फ़िगरेशन की जांच कैसे कर सकता हूं?


11

मैं जांचना चाहता हूं कि क्या मेरा लिनक्स कर्नेल प्रीमेप्टिव या नॉन-प्रीमेप्टिव है। मैं इसे कमांड का उपयोग करके कैसे जांच सकता हूं, जैसे कुछ uname -a?

जवाबों:


10

क्या कोई कर्नेल प्रीमेप्टिव है या नहीं यह इस बात पर निर्भर करता है कि आप प्रीमेप्ट करना चाहते हैं, जैसे कि लिनक्स कर्नेल में, विभिन्न चीजें हैं जो प्रीमेशन इनेबल / डिसेबल हो सकती हैं।

यदि आपकी कर्नेल में सक्षम 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


मैंने रास्पबेरी में एक कर्नेल मॉड्यूल बनाया जो तापमान के लिए पूछने के लिए बाहरी सेंसर के साथ संवाद करता है। सेंसर के साथ बात करने के लिए, मुझे निर्दिष्ट समय के लिए (एमएस में) gpio पिन इनपुट और आउटपुट सेट करना चाहिए। और मॉड्यूल ठीक काम करते हैं। इसलिए कर्नेल मॉड्यूल शेड्यूलर द्वारा अन्य प्रक्रियाओं से पहले से प्रीपेप्ट नहीं किए जाते हैं, क्योंकि अगर यह प्रीपेप्टेड है, तो समय गलत होगा, और सेंसर से प्राप्त होने वाला परिणाम गलत होगा।
मिकमिक

2

एक प्रीमेचेबल कर्नेल (कम-विलंबता डेस्कटॉप) ने 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।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.