2011-02-10 13 views
7

मुझे एक विलंबता संवेदनशील एप्लिकेशन चलाया जाना है और मुझे टाइमर रिज़ॉल्यूशन को 1000 हर्ट्ज या उससे अधिक में बदलने के लिए कहा गया है। मैंने नेट पर थोड़ी सी खोज की और CONFIG_HZ इत्यादि के बारे में पृष्ठ पाए।लिनक्स कर्नेल टाइमर बदलें

हालांकि, फ़ाइल में कई अन्य संबंधित सेटिंग्स भी प्रतीत होती हैं, इसलिए मैं यह सुनिश्चित करना चाहता हूं कि मैं सेटिंग्स को गड़बड़ नहीं करता अप। मैं कुछ उत्पादन यहाँ पोस्टिंग कर रहा हूँ

$cat /boot/config-2.6.28-11-generic | grep HZ 
# CONFIG_HZ_1000 is not set 
# CONFIG_HZ_300 is not set 
CONFIG_MACHZ_WDT=m 
CONFIG_NO_HZ=y 
CONFIG_HZ=250 
# CONFIG_HZ_100 is not set 
CONFIG_HZ_250=y 

तो दूसरी पंक्ति, "# CONFIG_HZ_1000 सेट नहीं है" करता है, इसका मतलब यह है कि 1000 हर्ट्ज समर्थित नहीं है? क्या मुझे सिर्फ CONFIG_HZ को बदलना है और CONFIG_HZ-250 नहीं है?

पीएस: मैं एक गीओड प्रोसेसर पर 2.6 कर्नेल (उबंटू जौंटी) का उपयोग कर रहा हूं।

EDIT1: मैंने अपनी डेस्कटॉप मशीन और विकास मशीन पर http://www.advenage.com/topics/linux-timer-interrupt-frequency.php से कुछ कोड चलाया। माना जाता है कि कोड एक सटीक उपाय है कि सिस्टम टाइमर कितनी तेजी से बनाए रख सकता है। आउटपुट लगभग 183 हर्ट्ज (विकास मशीन पर) था। तो टाइमर बदलना सार्थक हो जाएगा?

उत्तर

14

.config संपादित न करें, जब तक कि आप एक Kbuild विशेषज्ञ नहीं हैं (और यदि आप यह पूछ रहे हैं, तो आप एक Kbuild विशेषज्ञ नहीं हैं)। इसके बजाय मेनू-आधारित कॉन्फ़िगरेशन सिस्टम लोड करने के लिए make menuconfig या make xconfig चलाएं। वैकल्पिक रूप से, make config एक लाइन-आधारित कॉन्फ़िगरेशन प्रक्रिया करेगा (जहां यह आपको कॉन्फ़िगर करने के बारे में कई सौ प्रश्न पूछता है - अनुशंसित नहीं)। प्रासंगिक विकल्प "प्रोसेसर प्रकार और विशेषताओं" के अंतर्गत "टाइमर आवृत्ति" के रूप में है।

उसने कहा, यह आवश्यक नहीं हो सकता है। आधुनिक लिनक्स टाइमर आवृत्ति को बढ़ाए बिना भी कम-विलंबता टाइमर को प्राप्त करने के लिए उच्च-रिज़ॉल्यूशन ईवेंट टाइमर (CONFIG_HIGH_RES_TIMERS) का उपयोग कर सकते हैं। एक टिकर सिस्टम (CONFIG_NO_HZ) के साथ, टाइमर आवृत्ति पर बहुत कम प्रभाव पड़ता है।

दूसरी तरफ, मुझे यकीन नहीं है कि टाइमर समर्थन जीओडी सीपीयू के पास क्या है। आप निम्न विलंबता प्रदर्शन प्राप्त करने के लिए क्या चाहते हैं यह देखने के लिए आप विभिन्न कर्नेल कॉन्फ़िगरेशन के साथ cyclictest चला सकते हैं। आपके द्वारा चलाया गया परीक्षण अधिकतम प्रेषण आवृत्ति का परीक्षण करता है, विलंबता प्रेषण नहीं करता है, इसलिए चक्रीय परिणामों की तुलना करना दिलचस्प होगा। यदि आपको वास्तव में कम विलंबता की आवश्यकता है, तो CONFIG_PREEMPT_RT patchset भी रुचि का हो सकता है।

7

टाइमर सेटिंग बदलने के लिए आपको कर्नेल को पुन: संकलित करने की आवश्यकता है। टेक्स्ट फ़ाइल की बजाय कुछ मानक मेनू कॉन्फ़िगरेशन टूल में विकल्प बदलें।

/boot/config... फाइलें केवल आपको बताती हैं कि विशिष्ट कर्नेल बाइनरी में क्या स्थापित है। यह एक कॉन्फ़िगरेशन फ़ाइल नहीं है जिसे आप बदल सकते हैं।

संबंधित मुद्दे