अब मुझे लिनक्स एनएमआई वॉचडॉग के बारे में कोई समस्या आती है। मैं ओएस हैंग का पता लगाने और पुनर्प्राप्त करने के लिए लिनक्स एनएमआई वॉचडॉग का उपयोग करना चाहता हूं। इसलिए मैं grub.cfg में "nmi_watchdog = 1" जोड़ता हूं। और फिर/proc/interrupt की जांच करें, प्रति सेकंड एनएमआई ट्रिगर किया गया था। लेकिन जब मैं डेडलॉक (डबल-अधिग्रहण स्पिनलॉक) के साथ एक मॉड्यूल लोड करता हूं, तो सिस्टम पूरी तरह से लटकता था, और कुछ नहीं होता (कभी घबराहट नहीं!)। ऐसा लगता है कि एनएमआई वॉचडॉग काम नहीं कर रहा था!लिनक्स एनएमआई वॉचडॉग कैसे काम करता है?
तब मैं Documantation/nmi_watchdog.txt पढ़ें, यह कहते हैं:
ध्यान रखें कि जब स्थानीय APIC का उपयोग कर, एनएमआई की आवृत्ति व्यवधान यह उत्पन्न करता है, प्रणाली लोड पर निर्भर करता है है। स्थानीय एपीआईसी एनएमआई वॉचडॉग, एक बेहतर स्रोत की कमी, "चक्रों का उपयोग" घटना का उपयोग करता है।
"चक्र" घटना क्या है?
यह
जोड़ा है, लेकिन अगर आपके सिस्टम कुछ भी लेकिन "hlt" प्रोसेसर अनुदेश पर ताले, प्रहरी बहुत जल्द ही के रूप में "चक्र unhalted" घटना हर घड़ी टिक नहीं होगा ट्रिगर किया जाएगा .. यदि यह "एचएलटी" पर लॉक हो जाता है, तो आप भाग्य से बाहर हैं - घटना पर नहीं होगी और वॉचडॉग ट्रिगर नहीं होगा।
कि प्रहरी की तरह लगता है ट्रिगर नहीं करेगा अगर प्रोसेसर पर अमल "hlt" अनुदेश, तो मैं खोज "hlt" में "इंटेल 64 और IA-32 आर्किटेक्चर सॉफ्टवेयर डेवलपर की मैनुअल, volumn 2A", यह के रूप में वर्णन करता है अनुसरण करें:
निर्देश निष्पादन रोकता है और प्रोसेसर को एचएएलटी राज्य में रखता है। एक सक्षम इंटरप्ट (एनएमआई और एसएमआई समेत), एक डीबग अपवाद, बिनिट # सिग्नल, आईएनआईटी # सिग्नल, या आरईएसईटी # सिग्नल निष्पादन फिर से शुरू होगा।
तब मैं खो दिया है ...
मेरा प्रश्न है:
- कैसे लिनक्स नॉटिकल मील प्रहरी काम करता है?
- कौन एनएमआई ट्रिगर करें?
मेरा ओएस उबंटन 10.04 एलटीएस, लिनक्स-2.6.32.21, सीपीयू पेंटियम 4 ड्यूल-कोर 3.20 गीगाहर्ट्ज है।
मैं नॉटिकल मील प्रहरी (कोई समय) के बारे में पूरी स्रोत कोड है, तो मैं कैसे नॉटिकल मील प्रहरी काम नहीं समझ सकता है पढ़ा नहीं था,, मैं बाधा बाधा और अंतर-प्रोसेसर प्रदर्शन की निगरानी काउंटर का उपयोग करना चाहते हैं (हो एपीआईसी द्वारा प्रदान की गई) एनएमआई वॉचडॉग के बजाय एनएमआई भेजने के लिए।
क्या कोई मेरी मदद कर सकता है? धन्यवाद।
अच्छी चीजें एनएमआई वॉचडॉग, इसे व्यापार के अपने टूल्स में जोड़ें – cctan
लिनक्स कर्नेल कार्यान्वयन watchdog_nmi_enable()। – firo