一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核中有三個watchdog

Linux閱碼場 ? 來源:Linuxer ? 作者:Linuxer ? 2021-01-14 09:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux內(nèi)核中有三個watchdog(看門狗),它們都需要被悉心的喂養(yǎng)照料,分別是:

1. /dev/watchdog

2.softlockup檢測機(jī)制

3.hardlockup檢測機(jī)制

首先看 1./dev/watchdog,此看門狗該怎樣喂養(yǎng)呢,linux內(nèi)核中有一段樣例代碼:

pIYBAF__m46AJDUrAABmxI1OPdA311.png

此例子中,每隔10秒鐘就會向“/dev/watchdog"文件寫入0, 這就是喂狗過程,看到這個樣例,好像不太能感受到這個看門狗大的用處,但是放在實際工程中,用處太大了,舉個例子:

某國中央銀行在一臺有 內(nèi)存4T, 320個cpu核 的Linux服務(wù)器上跑一個數(shù)據(jù)庫程序,數(shù)據(jù)庫上存有他本國所有人民的銀行賬號信息,當(dāng)此數(shù)據(jù)庫程序在運行過程中,發(fā)生了IO讀寫錯誤,或者程序bug, 一下卡住了,那么他本國人民就都不能存錢取錢轉(zhuǎn)賬了,整個國民經(jīng)濟(jì)瞬間癱瘓。

此時想想看,Linux系統(tǒng)有沒有什么機(jī)制來解決這種問題了,這時候“/dev/watchdog" 來了,

這個時候只需要在數(shù)據(jù)庫程序中加上類似上面的樣例程序,每隔10s中就去喂狗一次,

只要數(shù)據(jù)庫程序卡住,卡住之后就不能喂狗了,等到比如默認(rèn)60s以后,這只狗就罷工了,立馬會默認(rèn)觸發(fā)服務(wù)器重啟。

服務(wù)器重啟會重新加載數(shù)據(jù)庫程序, 或者服務(wù)器在重啟過程中,由于服務(wù)器與它所在的服務(wù)器集群失聯(lián),從而觸發(fā)集群中的分腦檢測,把數(shù)據(jù)庫程序挪到集群中其它設(shè)備上跑,此時就減少了很多損失.所以這只狗/dev/watchdog 用處太大了。

再來看下它的實現(xiàn)原理:

pIYBAF__m6qAYrz7AAAcv44TA2U118.png

看到系統(tǒng)中有個內(nèi)核線程watchdogd, 和兩個字符文件:/dev/watchdog和/dev/watchdog0

其中watchdogd實時調(diào)度類線程負(fù)責(zé)具體執(zhí)行喂狗,/dev/watchdog是內(nèi)核提供給用戶層的通用操作接口文件,用來開啟這只狗,喂狗,查詢狀態(tài)等。/dev/watchdog0 是具體的狗子實現(xiàn),可以基于具體的物理設(shè)備實現(xiàn),或者是softdog內(nèi)核模塊以軟件的方式(具體使用方法:modprobe softdog)模擬硬件實現(xiàn)。

來看下softdog內(nèi)核模塊怎樣模擬硬件實現(xiàn)這個功能:

pIYBAF__m8KAShblAABEmHNhhos553.png

從代碼實現(xiàn)來看,很好理解,在開啟看門狗(open "/dev/watchdog")之后,默認(rèn)60s以后就會觸發(fā)系統(tǒng)重啟,在60s倒計時過程中,只有喂狗(softdog_ping)一次,它就又會恢復(fù)到60s以后才會觸發(fā)系統(tǒng)重啟,所以只要一直喂狗,emergency_restart()就不會執(zhí)行,系統(tǒng)就不會重啟。

再來看下2.softlockup檢測機(jī)制 和 3.hardlockup檢測機(jī)制。

softlockup檢測機(jī)制的喂狗方式是,每cpu上的hrtimer會喚醒一個migration/N內(nèi)核線程,migration/N每次被喚醒之后都會對某個時間戳進(jìn)行重置。

hardlockup檢測機(jī)制的喂狗方式是,hrtimer每次執(zhí)行時都會對一個變量進(jìn)行加一。

關(guān)于softlockup和hardlockup檢測機(jī)制的具體原理實現(xiàn)和應(yīng)用場景,我最近發(fā)布了一個視頻“Linux常見鎖和lockup檢查機(jī)制"包含了從實現(xiàn)原理(linux內(nèi)核代碼層)和原理驗證(使用ftrace調(diào)試手段)、樣例代碼、動手模擬實驗,可以全方位理解softlockup/hardlockup.

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11509

    瀏覽量

    213685
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70671
  • Watchdog
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    9592

原文標(biāo)題:總結(jié)Linux內(nèi)核中watchdog

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    怎么結(jié)合嵌入式,Linux,和FPGA三個方向達(dá)到一均衡發(fā)展?

    在嵌入式領(lǐng)域,不少人都懷揣著讓嵌入式、Linux 和 FPGA 三個方向?qū)崿F(xiàn)均衡發(fā)展的夢想,然而實踐中卻面臨諸多挑戰(zhàn)。就像備受矚目的全棧工程師稚暉君,他從大學(xué)玩單片機(jī)起步,憑借將智能算法融入嵌入式而
    的頭像 發(fā)表于 06-25 10:08 ?311次閱讀
    怎么結(jié)合嵌入式,<b class='flag-5'>Linux</b>,和FPGA<b class='flag-5'>三個</b>方向達(dá)到一<b class='flag-5'>個</b>均衡發(fā)展?

    Linux系統(tǒng)中最重要的三個命令

    Linux劍客是Linux系統(tǒng)中最重要的三個命令,它們以其強(qiáng)大的功能和廣泛的應(yīng)用場景而聞名。這三個工具的組合使用幾乎可以完美應(yīng)對Shell
    的頭像 發(fā)表于 03-03 10:37 ?423次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核簡介

    學(xué)到本章節(jié),大家應(yīng)該對Linux操作系統(tǒng)都有了一定的了解,但可能還不知道我們拿到手的內(nèi)核源碼都經(jīng)歷了什么。linux有一龐大的開源社區(qū),每個人都可以向開源社區(qū)提交代碼。由于
    發(fā)表于 12-13 09:03

    linux內(nèi)核中通用HID觸摸驅(qū)動

    linux內(nèi)核中,為HID觸摸面板實現(xiàn)了一通用的驅(qū)動程序,位于/drivers/hid/hid-multitouch.c文件中。hid觸摸驅(qū)動是以struct hid_driver實現(xiàn),首先定義一
    的頭像 發(fā)表于 10-29 10:55 ?2271次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>內(nèi)核</b>中通用HID觸摸驅(qū)動

    所有Window Watchdog Supervisors

    電子發(fā)燒友網(wǎng)站提供《所有Window Watchdog Supervisors.pdf》資料免費下載
    發(fā)表于 10-10 10:37 ?0次下載
    所有Window <b class='flag-5'>Watchdog</b> Supervisors

    雙向晶閘管的三個電極分別是什么作用

    雙向晶閘管(Bidirectional Thyristor),也稱為雙向可控硅或雙向可控整流器,是一種四層端半導(dǎo)體器件,具有兩方向的導(dǎo)電能力。它在電力電子領(lǐng)域中有著廣泛的應(yīng)用,如交流/直流
    的頭像 發(fā)表于 10-08 09:28 ?2307次閱讀

    詳解linux內(nèi)核的uevent機(jī)制

    linux內(nèi)核中,uevent機(jī)制是一種內(nèi)核和用戶空間通信的機(jī)制,用于通知用戶空間應(yīng)用程序各種硬件更改或其他事件,比如插入或移除硬件設(shè)備(如USB驅(qū)動器或網(wǎng)絡(luò)接口)。uevent表示“用戶空間
    的頭像 發(fā)表于 09-29 17:01 ?1866次閱讀

    linux驅(qū)動程序如何加載進(jìn)內(nèi)核

    Linux系統(tǒng)中,驅(qū)動程序是內(nèi)核與硬件設(shè)備之間的橋梁。它們允許內(nèi)核與硬件設(shè)備進(jìn)行通信,從而實現(xiàn)對硬件設(shè)備的控制和管理。 驅(qū)動程序的編寫 驅(qū)動程序的編寫是Linux驅(qū)動開發(fā)的基礎(chǔ)。在編
    的頭像 發(fā)表于 08-30 15:02 ?1096次閱讀

    基本理想電路元件的三個特征是什么

    基本理想電路元件是構(gòu)成電路的基本單元,它們具有三個基本特征:電壓-電流關(guān)系、能量轉(zhuǎn)換和電路參數(shù)。以下是對這三個特征的分析: 電壓-電流關(guān)系 理想電路元件的電壓-電流關(guān)系是其最基本的特征之一。這種關(guān)系
    的頭像 發(fā)表于 08-25 09:38 ?2372次閱讀

    Linux內(nèi)核測試技術(shù)

    Linux 內(nèi)核Linux操作系統(tǒng)的核心部分,負(fù)責(zé)管理硬件資源和提供系統(tǒng)調(diào)用接口。隨著 Linux 內(nèi)核的不斷發(fā)展和更新,其復(fù)雜性和代碼規(guī)
    的頭像 發(fā)表于 08-13 13:42 ?1251次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>測試技術(shù)

    對稱相電壓的特點是哪三個方面

    對稱相電壓是電力系統(tǒng)中常見的一種電壓形式,它具有三個相位,每個相位之間的相位差為120度。對稱相電壓在工業(yè)生產(chǎn)和日常生活中有著廣泛的應(yīng)用,如電動機(jī)、變壓器、發(fā)電機(jī)等。本文將從
    的頭像 發(fā)表于 08-12 18:18 ?3130次閱讀

    Linux內(nèi)核中的頁面分配機(jī)制

    Linux內(nèi)核中是如何分配出頁面的,如果我們站在CPU的角度去看這個問題,CPU能分配出來的頁面是以物理頁面為單位的。也就是我們計算機(jī)中常講的分頁機(jī)制。本文就看下Linux內(nèi)核是如何管
    的頭像 發(fā)表于 08-07 15:51 ?636次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>中的頁面分配機(jī)制

    簡述極管的三個工作區(qū)域

    極管的三個區(qū)域,通常指的是其在不同工作條件下的狀態(tài)區(qū)域,即截止區(qū)、放大區(qū)和飽和區(qū)。這三個區(qū)域定義了極管在不同電壓和電流條件下的行為特性,對于理解和設(shè)計電子電路至關(guān)重要。
    的頭像 發(fā)表于 07-29 10:50 ?6591次閱讀

    可調(diào)變阻器三個引腳怎么區(qū)分

    可調(diào)變阻器,也稱為電位器或可變電阻器,是一種可以調(diào)節(jié)電阻值的電子元件。它廣泛應(yīng)用于各種電子設(shè)備中,如音頻設(shè)備、電源管理、電機(jī)控制等。可調(diào)變阻器有三個引腳,分別是固定端、滑動端和可調(diào)端。這三個引腳
    的頭像 發(fā)表于 07-24 11:12 ?2582次閱讀

    可調(diào)電阻三個腳各是什么

    可調(diào)電阻器,也稱為電位器或可變電阻器,是一種可調(diào)節(jié)電阻值的電子元件。它通常由三個腳(引腳)組成,分別是固定腳、滑動腳和可調(diào)腳。以下是對這三個腳的介紹: 固定腳(Fixed Terminal): 固定
    的頭像 發(fā)表于 07-24 11:06 ?4117次閱讀