[核心文件系列] NMI 看門狗
[核心文件系列]
NMI 看門狗
秦白衣
[X86和X86-64體系結構均支援NMI看門狗]
你的系統是不是會經常被鎖住(Lock up)?直至解鎖,系統不再響應鍵盤?你希望幫助我們解決類似的問題嗎?如果你對所有的問題都回答“yes”,那麼此文件正是為你而寫。
在很多X86/X86-64結構的硬體上,我們都可以使用一種被稱為“看門狗NMI中斷”的機制。(NMI:Non Maskable Interrupt. 這種中斷即使在系統被鎖住時,也能被響應)。這種機制可以被用來除錯核心鎖住現象。通過週期性地執行NMI中斷,核心能夠監測到是否有CPU被鎖住。當有處理器被鎖住時,列印除錯資訊。
為了使用NMI
對於X86-64系統,APIC已被編進核心。
使用本地APIC(nmi_watchdog=2)時,需要佔用第一個效能暫存器,因而此暫存器不能再被另作它用(如高精度的效能分析)。Oprofile與perfctr的驅動已自動地禁用了本地APIC的NMI看門狗。
可以通過啟動引數“nmi_watchdog=N”使能NMI看門狗。即在lilo.conf的相關項中新增如下語句:
append=”nmi_watchdog=1”
對於具有IO-APIC的SMP與UP
“鎖住(Lockup)”是指如下的情況:如果系統中的任何一個CPU不能處理週期性的本地時鐘中斷,並持續5秒鐘以上,那麼NMI的處理函式將產生一個oops並殺死當前程序。這是一種“可控崩潰”(Controlled Crash,所謂可控,是指發生崩潰時,能夠輸出核心資訊),可以用此機制來除錯“鎖住”現象。那麼,無論什麼時候發生“鎖住”,5秒鐘之後都會自動地輸出oops。如果核心沒有輸出資訊,說明此時發生的崩潰過於嚴重(如:hardware-wise),以至於NMI中斷都無法被響應,或者此次崩潰使得核心無法列印資訊。
在使用本地APIC時要注意,NMI中斷被觸發的頻率依賴於系統的當前負載。由於缺乏更好的時鐘源,本地APIC中的NMI看門狗使用的是“有效週期(Cycle unhalted,這個詞的翻譯似乎不太確切,如果某位朋友有更佳的建議,請告知在下。)”事件。也許你已經猜到了,當CPU處於halted(空等)狀態時,該時鐘是不計數的。處理器處於空閒狀態的時候,常出現這樣的情況。如果你的系統在被鎖住時,執行的不是hlt指令,看門狗中斷很快就會被觸發,因為每個時鐘週期都會發生“有效週期”事件。如果不幸,處理器在被鎖住時,執行的恰是“hlt”指令,那麼“有效週期”事件永遠都不會發生,看門狗自然也不會被觸發。這是本地APIC看門狗的缺陷,在倒黴的時候,永遠不會進行時鐘計數。而I/O APIC中的看門狗由於採用外部時鐘進行驅動,便不存在這個缺陷。但是,它的NMI頻率非常高,會顯著地影響系統的效能。
X86的nmi_watchdog在預設情況下是禁用的,因此你需要在系統啟動的時候使能它。
在系統執行期間,可以禁用NMI看門狗,只要向檔案“/proc/sys/kernel/nmi_watchdog”中寫“0”即可。向該檔案寫“1”,將重新使能看門狗。即使如此,你仍然需要在啟動時使用引數“nmi_watchdog=”。
注意:在2.4.2-ac18之前的核心中,X86 SMP平臺會無條件地使能NMI-oopser。
相關推薦
[核心文件系列] NMI 看門狗
[核心文件系列] NMI 看門狗 秦白衣 [X86和X86-64體系結構均支援NMI看門狗] 你的系統是不是會經常被鎖住(Lock up)?直至解鎖,系統不再響應鍵盤?你希望幫助我們解決類似的問題嗎?如果你對所有的問題都回答“yes”,那麼此文件正是為你而寫。 在很多
WebService核心文件【web-config.wsdd】調用操作
app names row data- esp scope ice tac namespace WebService核心文件【server-config.wsdd】詳解及調用示例 作者:瑪莎拉蒂-小賤人 一、準備工作 導入需要的jar包:
python內置函數中的 IO文件系列 open和os
python io文件 open os 內置函數 本篇介紹 IO 中的 open 和 os基礎用法。本次用一個遊戲登陸 基礎界面做引子,來介紹。實現存儲的話,方式是很多的。 比如 存到字典 和列表了,可是字典、列表是臨時的,玩網頁遊戲一次還是可以,如果要是一個反復要用到的一個軟件的話,顯
樹莓派 Raspbian 軟件源更改 看門狗啟用
hust XP emp 一行 啟用 pan 這一 targe ssh連接 1.替換腳本 下面腳本請直接復制到終端執行!! 適用於raspbian-stretch(基於Debian9) sudo -s echo -e "deb http://mirrors.us
mybatis核心文件詳解
type屬性 標簽 fig 是否 ring nag names 數據連接 指定 MyBatis配置文件詳解 configuration 這是配置文件的根元素標簽,所有的其他元素都要在這個標簽下使用。 environments 用於管理所有環境,並可以指定默認使用哪個
Linux核心文件翻譯
本部落格由浙江工商大學資訊學院的計算機專業學生維護,提供Linux核心有關文件的中文翻譯,為Linux核心學習提供參考。 核心版本:V3.11 翻譯的文件及翻譯進度如下: Documentation/block/switching-sched.txt 建立時間:
ext4之核心文件
Ext4 檔案系統 =============== 這個版本的ext4是一個開發中的版本,一個比ext3效能優秀的fs,不但支援比ext3更加大的檔案系統,還兼顧了可擴充套件性和可靠性。 郵件列表: [email protected],大家如果想訂閱ext4的核心郵件的話,只需要向這個郵件傳送sub
CentOS核心文件目錄詳解
編譯 size 虛擬文件系統 硬件 配置 什麽 -m ip add oca 目錄結構 又稱FHS目錄層次標準 =============標準目錄結構================= /dev 設備目錄(硬盤、光驅等)/boot Linux的內
Linux核心文件:如何寫符合 kernel-doc 規範的註釋
## 簡介 Linux核心使用 [Sphinx](http://www.sphinx-doc.org/) 實現把 *Documentation* 目錄下的 [reStructuredText](http://docutils.sourceforge.net/rst.html) 檔案轉換為非常漂亮的文件。文件
openssl之BIO系列之12---文件描寫敘述符(fd)類型BIO
scrip 所在 pri 返回 div static 實現 論壇 res 文件描寫敘述符(fd)類型BIO ---依據openssl doc\crypto\bio_s_fd.pod翻譯和自己的理解寫成 (作者:DragonKing [email
Elasticsearch基本概念及核心配置文件詳解
last log4j 強烈 內存 文檔 size oca 機制 集群 Elasticsearch5.X,下列的是Elasticsearch2.X系類配置,其實很多配置都是相互兼容的 1. 配置文件 config/elasticsearch.yml 主配置文件
【只怕沒有幾個人能說清楚】系列之二:Unity中的特殊文件夾
物體 avi ebp time 編輯模式 tro hive 預覽 打包 參考:http://www.manew.com/thread-99292-1-1.html 1. 隱藏文件夾 以.開頭的文件夾會被忽略。在這種文件夾中的資源不會被導入,腳本不會被編譯。也不會出現
閑來無事研究一下酷狗緩存文件kgtemp的加密方式
eight mp3 img 異或 tel 輸出 cnblogs images 加密算法 此貼為本人原創,轉載請註明出處 序 前幾天更新了被打入冷宮很久的酷狗,等進入之後就感覺菊花一緊————試 聽 居 然 都 要 開 通 音 樂 包(高品和無損)才行了,WTF! 這意味著以
Java核心類庫-IO-文件過濾器(FilenameFilter)
return 文件過濾 system sof boolean style 接口 strong family 文件操作過濾器(FilenameFilter): listFiles(FilenameFilter filter )方法 : 實際就相當於: //文件過濾器(Fil
Tomcat7源碼分析學習系列之一-----tomcat的啟動文件startup的註釋
addition mission etl %0 很好 fine copy 文件結尾 存在 1. Windows系統,tomcat啟動文件startup.bat @echo off rem 關閉回顯,不顯示下面的命令;rem Licensed to the Apa
奪命雷公狗C/C++-----4---頭文件的用法
png 文章 右鍵 com c++ nbsp 用法 -1 文件的 我們上一篇文章已經說過了如何創建項目,那麽我們這一篇就來說下頭文件的用法, 右鍵文件頭-----》添加----》新建項 然後我們就可以編寫我們的.h文件了,h說白了也就是類似head的意思。。 這
奪命雷公狗C/C++-----8---打開一個文件
int pre open getchar 一個 xpl opera ++ .cn 提示:在c語言中\\兩個斜杠代表著一個 \ 斜杠而已噢,很多新人朋友都會在這裏出現道問題噢 其實我們還可以通過c語言來打開一個文件噢,比如我們打開一個記事本來玩玩 #include &
[CentOS 7系列]linux系統文件類型
linux 文件夾 而且 ls命令是linux下最常用的命令。ls命令就是list的縮寫。通過ls 命令不僅可以查看linux文件夾包含的文件,而且可以查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。1.命令格式: ls [選項] [目錄名]2.命令功能: 列出目標目錄中所
hibernate核心配置文件需要配置的部分
核心 可選 eight 引入 image 配置文件 cnblogs height nbsp 第一部分 數據庫部分 第二部分 hibernate部分(可選) 第三部分 引入映射配置文件 hibernate核心配置文件需要配置的部分
酷狗.kgtemp文件加密算法逆向
using 變量 可能 inpu 技術分享 ram out pen 然而 該帖轉載於孤心浪子--http://www.cnblogs.com/KMBlog/p/6877752.html 酷狗音樂上的一些歌曲是不能免費下載的,然而用戶仍然可以離線試聽,這說明有緩存文件,並且極