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

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

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

Linux中斷子系統(tǒng)相關(guān)節(jié)點

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:Jasonangel ? 2023-09-27 17:32 ? 次閱讀

Linux 中斷相關(guān)節(jié)點

/proc/interrupts

cat 這個節(jié)點,會打印系統(tǒng)中所有的中斷信息,如果是多核CPU,每個核都會打印出來。

包括每個中斷的名字、中斷號 IRQ number、每個中斷的觸發(fā)次數(shù)、在哪個CPU核處理的、是邊沿觸發(fā)還是電平觸發(fā),屬于哪個中斷控制器,都會打印出來。

/proc/irq/…

進入這個目錄。會看到以中斷號命名的文件夾,每個中斷號文件夾下面都有幾個節(jié)點,存儲了這個中斷的信息,比如smp_affinity、affinity_hint、spurious等。smp_affinity代表中斷號核CPU之間的親緣綁定關(guān)系,也就是如果某個中斷號綁定了一個CPU核,那么這個中斷就會一直在這個CPU上處理。

如何讓某個中斷在某個特定的 CPU 處理?

kernel 2.4 以后的版本才支持把不同的硬件中斷請求(IRQs)分配到特定的 CPU 上,這個綁定技術(shù)被稱為 SMP IRQ Affinity.更多介紹請參看 Linux 內(nèi)核源代碼自帶的文檔:linux-4.14/Documentation/IRQ-affinity.txt

/proc/irq/{IRQ}/smp_affinity

/proc/irq/{IRQ}/smp_affinity_list

/proc/irq/{IRQ}/smp_affinity 指定給定的 irq中斷號源允許哪些CPU執(zhí)行,它是一個掩碼位,比如是ff,代表11111111,表示這個中奪冠可以在 8 個 CPU 執(zhí)行,具體在哪一個 CPU執(zhí)行,靠分配器分配。
如果這個 /proc/irq/{IRQ}/smp_affinity 指定為00000001,代表這個IRQ只能在最后一個CPU核進行處理,其他CPU不允許處理,大家可以測試一下,主測試是 OK的(GIC支持,其他中斷控制器不一定)。

串口手動賦值的重啟以后會消失,可以在代碼中調(diào)用 irq_set_affinity 函數(shù),指定中斷的掩碼,來達到某個中斷被固定CPU處理的需求。

中斷分發(fā)機制

對于 GIC-V2 而言,SPI 的分發(fā)是根據(jù) Distributor 中的 Interrupt Processor Targets Registers 來決定的。對于任何一個 SPI,其都有在某個 GICD_ITARGETSRn 寄存器中有 8 個bit標識送達的processor,如果只有一個 bit 被 set,那么就很簡單了,如果該中斷是當前優(yōu)先級最高的中斷,那么 Distributor 就會送到對應的 CPU interface,該中斷最終會送達指定的 CPU。

如果該中斷對應的 Interrupt Processor Targets Registers 中的那 8 個 bit 有多個 bit 被 set
的話,Distributor 如何處理呢?“依次輪著把產(chǎn)生的中斷給各個CPU,還是說看哪個CPU有空就給哪個CPU來著”,讓硬件處理這么復雜的邏輯有些不合適,實際上,GIC的硬件是不會進行任何判斷的,也不會集成任何的算法,它就是根據(jù)Interrupt Processor Targets Registers的bit設定情況,忠實的把中斷送往指定的一個processor或者多個processors。

大家可以去看看 gic_set_affinity 這個函數(shù),這個函數(shù)確保一個中斷的 Interrupt Processor Targets
Registers 中的那8個bit只有一個bit被設定。

/kernel5.15/drivers/irqchip/irq-gic-v3.c

圖片圖片

在 1244 和 1246 行,1246 行就是在 online 的 CPU 中選中一個,1263 行寫入到寄存器中,GIC 會讀取這個寄存器,是哪個 CPU,然后將中斷發(fā)給這個CPU。中間的函數(shù)很簡單,大家可以自己看。

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

    關(guān)注

    3

    文章

    1360

    瀏覽量

    40185
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10804

    瀏覽量

    210839
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11207

    瀏覽量

    208721
  • 子系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    109

    瀏覽量

    12373
收藏 人收藏

    評論

    相關(guān)推薦

    PCB布局的關(guān)鍵:開關(guān)節(jié)點走線尺寸滿足電流?(3)

    PCB布局的關(guān)鍵:開關(guān)節(jié)點走線尺寸滿足電流?|深圳比創(chuàng)達EMC(3)
    的頭像 發(fā)表于 08-08 11:00 ?1326次閱讀

    電源技巧#7:通過更好的去耦減少開關(guān)節(jié)點振鈴

    高電流,負載點(POL)降壓轉(zhuǎn)換器利用金屬氧化物半導體場效應晶體管(MOSFET)為輸出濾波器提供脈沖寬度調(diào)制(PWM)脈沖序列。降壓轉(zhuǎn)換器功率級元件的布局將直接影響開關(guān)節(jié)點上的振鈴幅度,如果控制
    發(fā)表于 09-26 10:43

    控制同步降壓轉(zhuǎn)換器中的開關(guān)節(jié)點振鈴

    控制同步降壓轉(zhuǎn)換器中的開關(guān)節(jié)點振鈴
    發(fā)表于 09-26 10:47

    關(guān)節(jié)點的振鈴

    就“開關(guān)節(jié)點的振鈴”來驗證其主要原因。在設計實際的布線圖形時,對寄生成分等的處理無處不在。本章中還就以下項目進行說明,要理解各項目需要參考前后相關(guān)項目,因此下面列出包括計劃在內(nèi)的項目一覽。降壓型轉(zhuǎn)換器
    發(fā)表于 12-03 14:33

    方波波形開關(guān)節(jié)點概述

    所有功率級設計者期望在開關(guān)節(jié)點看到完美的方波波形??焖偕仙?下降邊降低了開關(guān)損耗,而低過沖和振鈴最小化功率FET上的電壓應力。采用TI最新的GaN技術(shù)設計,圖1a所示的功率級開關(guān)節(jié)點波形真的引人矚目
    發(fā)表于 08-26 04:45

    無線傳感器網(wǎng)絡的普通節(jié)點和網(wǎng)關(guān)節(jié)點怎么實現(xiàn)?

    的限制。以此超低功耗單片機MSP430為核心,結(jié)合無線收發(fā)模塊nRF24E1,對無線傳感器網(wǎng)絡的普通節(jié)點和網(wǎng)關(guān)節(jié)點進行了設計。
    發(fā)表于 10-18 07:28

    STM32系統(tǒng)時鐘配置操作的一些關(guān)節(jié)點

    本文,使用一問一答的方式,解說STM32系統(tǒng)時鐘配置操作的一些關(guān)節(jié)點。不討論配置的過程、步驟,網(wǎng)上不缺絮絮叨叨的各種教程。一句話:過程高深,使用簡單.詳細代碼解釋下載
    發(fā)表于 08-11 07:17

    Arm Linux中斷子系統(tǒng)相關(guān)資料分享

    1. Arm Linux 中斷子系統(tǒng)1.1. 中斷硬件系統(tǒng)3個組成部分:外設(中斷源)、
    發(fā)表于 05-23 15:21

    方波波形開關(guān)節(jié)點為什么受歡迎

    采用TI最新的GaN技術(shù)設計,圖1a所示的功率級開關(guān)節(jié)點波形真的引人矚目。其在120V / ns轉(zhuǎn)換速率下,從0V升到480V,并具有小于50V的過沖。 圖1:TI 600V半橋功率級——開關(guān)波形
    發(fā)表于 11-15 06:43

    基于Cortex_M3的多功能樓宇控制系統(tǒng)網(wǎng)關(guān)節(jié)點設計

    基于Cortex_M3的多功能樓宇控制系統(tǒng)網(wǎng)關(guān)節(jié)點設計
    發(fā)表于 09-25 13:07 ?7次下載
    基于Cortex_M3的多功能樓宇控制<b class='flag-5'>系統(tǒng)</b>網(wǎng)<b class='flag-5'>關(guān)節(jié)點</b>設計

    方波波形開關(guān)節(jié)點大受歡迎

    方波波形開關(guān)節(jié)點大受歡迎
    發(fā)表于 11-02 08:16 ?0次下載
    方波波形開<b class='flag-5'>關(guān)節(jié)點</b>大受歡迎

    使用RC緩沖電路去除開關(guān)節(jié)點諧波噪聲

    引言:降壓轉(zhuǎn)換器IC的開關(guān)節(jié)點容易產(chǎn)生很多高次諧波噪聲,緩沖電路作為除去這些高次諧波噪聲的手段之一,本節(jié)簡述如何使用RC緩沖電路去除開關(guān)節(jié)點諧波噪聲。
    的頭像 發(fā)表于 06-28 15:56 ?2320次閱讀
    使用RC緩沖電路去除開<b class='flag-5'>關(guān)節(jié)點</b>諧波噪聲

    PCB布局的關(guān)鍵:盡量縮短開關(guān)節(jié)點走線長度?

    PCB布局的關(guān)鍵:盡量縮短開關(guān)節(jié)點走線長度?|深圳比創(chuàng)達EMC(2)
    的頭像 發(fā)表于 08-07 11:20 ?954次閱讀
    PCB布局的關(guān)鍵:盡量縮短開<b class='flag-5'>關(guān)節(jié)點</b>走線長度?

    如何使用RC緩沖電路去除開關(guān)節(jié)點諧波噪聲

    降壓轉(zhuǎn)換器IC的開關(guān)節(jié)點容易產(chǎn)生很多高次諧波噪聲,緩沖電路作為除去這些高次諧波噪聲的手段之一,本節(jié)簡述如何使用RC緩沖電路去除開關(guān)節(jié)點諧波噪聲。
    發(fā)表于 04-30 14:46 ?993次閱讀
    如何使用RC緩沖電路去除開<b class='flag-5'>關(guān)節(jié)點</b>諧波噪聲

    減小反激式轉(zhuǎn)換器開關(guān)節(jié)點電壓尖峰的流程

    電子發(fā)燒友網(wǎng)站提供《減小反激式轉(zhuǎn)換器開關(guān)節(jié)點電壓尖峰的流程.pdf》資料免費下載
    發(fā)表于 09-20 11:19 ?0次下載
    減小反激式轉(zhuǎn)換器開<b class='flag-5'>關(guān)節(jié)點</b>電壓尖峰的流程