国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

Linux中斷“搬家”指南:從應(yīng)用到操作,手把手教你轉(zhuǎn)移中斷核心(RK3588)

jf_44130326 ? 來(lái)源:Linux1024 ? 2026-02-04 16:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在高性能服務(wù)器或嵌入式設(shè)備(如瑞芯微RK3588)上,中斷處理的CPU核心綁定是優(yōu)化性能的關(guān)鍵手段之一。比如網(wǎng)卡中斷默認(rèn)綁在小核上時(shí),高網(wǎng)絡(luò)負(fù)載會(huì)導(dǎo)致小核過(guò)載,而大核卻閑置;通過(guò)中斷轉(zhuǎn)移,把網(wǎng)卡中斷綁到性能更強(qiáng)的大核,能顯著提升網(wǎng)絡(luò)吞吐量、降低延遲。

wKgZO2kamRWAYpqtAAAlebNTssU358.png

一、為什么要做中斷轉(zhuǎn)移?

中斷是CPU處理硬件事件的信號(hào),但默認(rèn)情況下,中斷可能被隨機(jī)分發(fā)到不同CPU核心。在以下場(chǎng)景,中斷轉(zhuǎn)移尤為重要:

?異構(gòu)CPU(大小核):如RK3588A76大核(性能強(qiáng))和A55小核(能效高),把網(wǎng)卡、存儲(chǔ)等核心中斷綁到大核,充分利用大核算力。

?多核負(fù)載均衡:避免單個(gè)核心因中斷扎堆導(dǎo)致過(guò)載,讓核心資源更均衡。

?低延遲場(chǎng)景:對(duì)延遲敏感的業(yè)務(wù)(如實(shí)時(shí)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)),將中斷綁到專屬核心,減少調(diào)度干擾。

二、應(yīng)用層:三步完成中斷轉(zhuǎn)移

網(wǎng)卡eth0的中斷轉(zhuǎn)移到CPU7為例,操作只需3步:

步驟1:找到目標(biāo)中斷的身份證”——中斷號(hào)

通過(guò)/proc/interrupts查看中斷與設(shè)備的對(duì)應(yīng)關(guān)系:

wKgZO2kamRaACa8XAAAgQ1W5w6s256.png

?這里156就是**eth0-0中斷的中斷號(hào)**

步驟2:計(jì)算目標(biāo)CPU綁定掩碼

Linux十六進(jìn)制掩碼表示中斷允許分發(fā)的CPU核心,每一位對(duì)應(yīng)一個(gè)CPU(從右到左,最低位為CPU0):

?CPU001(二進(jìn)制00000001

?CPU102(二進(jìn)制00000010

?CPU204(二進(jìn)制00000100

?...

?CPU780(二進(jìn)制10000000

如果要綁到CPU7,掩碼就是80

步驟3:寫(xiě)入掩碼,完成搬家

將掩碼寫(xiě)入/proc/irq/[中斷號(hào)]/smp_affinity

echo80 > /proc/irq/156/smp_affinity
驗(yàn)證轉(zhuǎn)移結(jié)果

再次查看中斷計(jì)數(shù),確認(rèn)CPU7的計(jì)數(shù)是否開(kāi)始增長(zhǎng):

watch-n1"cat /proc/interrupts | grep eth0"

eth0-0對(duì)應(yīng)的CPU7列(最右列)數(shù)值持續(xù)增加,說(shuō)明轉(zhuǎn)移成功。

三、底層:中斷是如何認(rèn)新核心的?

從內(nèi)核到硬件,中斷轉(zhuǎn)移的核心邏輯分為3層:

1.用戶空間與內(nèi)核的交互:/proc接口

/proc/irq/[中斷號(hào)]/smp_affinity用戶空間與內(nèi)核中斷子系統(tǒng)的橋梁。當(dāng)你寫(xiě)入掩碼時(shí),內(nèi)核會(huì)解析這個(gè)十六進(jìn)制值,轉(zhuǎn)換為CPU親和性位圖。

2.內(nèi)核中斷子系統(tǒng):配置親和性

內(nèi)核通過(guò)irq_desc結(jié)構(gòu)體管理每個(gè)中斷的屬性,其中包含irq_data.affinity(親和性位圖)。當(dāng)寫(xiě)入smp_affinity時(shí),內(nèi)核會(huì):

?解析十六進(jìn)制掩碼為二進(jìn)制位圖;

?更新irq_desc中該中斷的親和性配置;

?通知中斷控制器(如ARM GIC這個(gè)中斷以后只發(fā)給指定CPU”

3.硬件中斷控制器:最終的分發(fā)者

ARM GIC(通用中斷控制器)為例,它會(huì)根據(jù)內(nèi)核設(shè)置的親和性寄存器Affinity Register,決定將中斷信號(hào)發(fā)送到哪個(gè)CPU核心。

比如,當(dāng)GIC收到eth0的中斷請(qǐng)求時(shí),會(huì)檢查該中斷的親和性配置,然后直接把中斷投遞CPU7的中斷管線,確保只有CPU7會(huì)響應(yīng)這個(gè)中斷。

四、實(shí)戰(zhàn):RK3588上的中斷轉(zhuǎn)移(大小核優(yōu)化)

RK3588采用“4大核(A76+4小核(A55架構(gòu),假設(shè)要把eth0的關(guān)鍵中斷移到大核(如CPU6CPU7),步驟如下:

1.確定大核編號(hào):通過(guò)lscpu查看CPU架構(gòu),確認(rèn)大核對(duì)應(yīng)的邏輯CPU編號(hào)(比如CPU4~CPU7是大核)。

2.找到eth0中斷號(hào)

cat/proc/interrupts | grep eth0

假設(shè)關(guān)鍵中斷號(hào)是156eth0-0)。

1.綁定到大核(如CPU7

echo80 > /proc/irq/156/smp_affinity

1.驗(yàn)證與壓測(cè)

?watch監(jiān)控中斷計(jì)數(shù),確認(rèn)CPU7列增長(zhǎng);

?iperf進(jìn)行網(wǎng)絡(luò)壓測(cè),對(duì)比轉(zhuǎn)移前后的吞吐量和延遲。

以下視頻為指令切換到不同核,右邊中斷觀察變化

五、注意事項(xiàng):這些坑要避開(kāi)

1.irqbalance服務(wù)的干擾

irqbalance是一個(gè)自動(dòng)均衡中斷的服務(wù),會(huì)動(dòng)態(tài)調(diào)整中斷綁定。如果要固定中斷核心,需先關(guān)閉它:

systemctl stop irqbalancesystemctldisableirqbalance

1.多隊(duì)列網(wǎng)卡的配合

現(xiàn)代網(wǎng)卡支持多隊(duì)列RSS(接收端縮放),可將不同數(shù)據(jù)流的中斷分散到多個(gè)隊(duì)列。此時(shí),除了中斷綁定,還需配置隊(duì)列的CPU親和性(通過(guò)/sys/class/net/eth0/queues/目錄)。

2.配置的持久性

/proc下的配置是臨時(shí)的,重啟后會(huì)丟失。若需永久生效,可將命令寫(xiě)入啟動(dòng)腳本(如/etc/rc.local)或系統(tǒng)服務(wù)。

3.大小核的能力匹配

確保目標(biāo)CPU核心支持處理該中斷(比如某些特殊中斷可能只能由特定核心處理,需查閱SoC手冊(cè))。

總結(jié)

中斷轉(zhuǎn)移是Linux系統(tǒng)精細(xì)化性能調(diào)優(yōu)的重要手段,從應(yīng)用層的簡(jiǎn)單配置,到底層內(nèi)核與硬件的協(xié)同,本質(zhì)是讓中斷信號(hào)精準(zhǔn)匹配算力核心。無(wú)論是異構(gòu)CPU的性能釋放,還是多核負(fù)載的均衡,掌握中斷轉(zhuǎn)移,能讓你的系統(tǒng)跑得更聰明

如果是嵌入式或服務(wù)器開(kāi)發(fā),趕緊試試把核心中斷綁到高性能核心,看看業(yè)務(wù)延遲和吞吐量的變化吧~

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

    關(guān)注

    5198

    文章

    20445

    瀏覽量

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

    關(guān)注

    68

    文章

    11277

    瀏覽量

    224956
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11758

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    力天手把手教你學(xué)單片機(jī)視頻全集下載

    單片機(jī)之實(shí)戰(zhàn)篇.rarhttp://115.com/file/c24tl5yt#20.第十講.單個(gè)按鍵與中斷上--力天手把手教你學(xué)單片機(jī)之實(shí)戰(zhàn)篇.rarhttp://115.com/file
    發(fā)表于 02-14 17:06

    手把手教你構(gòu)建一個(gè)完整的工程

    手把手教你構(gòu)建一個(gè)完整的工程
    發(fā)表于 08-03 09:54 ?33次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>構(gòu)建一個(gè)完整的工程

    手把手教你寫(xiě)批處理-批處理的介紹

    手把手教你寫(xiě)批處理-批處理的介紹
    發(fā)表于 10-25 15:02 ?69次下載

    美女手把手教你如何裝機(jī)(中)

    美女手把手教你如何裝機(jī)(中) 再來(lái)是硬碟的部份,這款機(jī)殼還不錯(cuò),可以旋轉(zhuǎn)支架~
    發(fā)表于 01-27 11:14 ?1633次閱讀

    美女手把手教你如何裝機(jī)(下)

    美女手把手教你如何裝機(jī)(下) 接著下來(lái)就是今天的重頭戲,開(kāi)核蘿!~
    發(fā)表于 01-27 11:16 ?3167次閱讀

    手把手教你安裝Quartus II

    本章手把手把教你如何安裝 Quartus II 軟件 ,并將它激活 。此外 還有USB -Blaster下載器的驅(qū)動(dòng)安裝步驟 。
    發(fā)表于 09-18 14:55 ?9次下載

    手把手教你在家搭建監(jiān)控系統(tǒng)

    手把手教你在家搭建監(jiān)控系統(tǒng)
    發(fā)表于 01-17 19:47 ?30次下載

    手把手教你如何開(kāi)始DSP編程

    手把手教你如何開(kāi)始DSP編程。
    發(fā)表于 04-09 11:54 ?13次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何開(kāi)始DSP編程

    手把手教你學(xué)LabVIEW視覺(jué)設(shè)計(jì)

    手把手教你學(xué)LabVIEW視覺(jué)設(shè)計(jì)手把手教你學(xué)LabVIEW視覺(jué)設(shè)計(jì)手把手教你學(xué)LabVIEW視
    發(fā)表于 03-06 01:41 ?3546次閱讀

    手把手教你開(kāi)關(guān)電源PCB排板

    手把手教你開(kāi)關(guān)電源PCB排板(新型電源技術(shù))-分享一下開(kāi)關(guān)電源PCB排板的基本要點(diǎn)及分析,以及例子講解。絕對(duì)的手把手
    發(fā)表于 09-18 12:27 ?67次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>開(kāi)關(guān)電源PCB排板

    《嵌入式 - STM32開(kāi)發(fā)指南手把手教你搭建STM32開(kāi)發(fā)環(huán)境 [Linux版 - 3]

    《嵌入式 - STM32開(kāi)發(fā)指南手把手教你搭建STM32開(kāi)發(fā)環(huán)境 [Linux版 - 1]《嵌入式 - STM32開(kāi)發(fā)指南
    發(fā)表于 12-06 09:36 ?0次下載
    《嵌入式 - STM32開(kāi)發(fā)<b class='flag-5'>指南</b>》<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>搭建STM32開(kāi)發(fā)環(huán)境 [<b class='flag-5'>Linux</b>版 - 3]

    手把手教你學(xué)FPGA仿真

    電子發(fā)燒友網(wǎng)站提供《手把手教你學(xué)FPGA仿真.pdf》資料免費(fèi)下載
    發(fā)表于 10-19 09:17 ?2次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>學(xué)FPGA仿真

    手把手教你如何調(diào)優(yōu)Linux網(wǎng)絡(luò)參數(shù)

    在高并發(fā)網(wǎng)絡(luò)服務(wù)場(chǎng)景中,Linux內(nèi)核的默認(rèn)網(wǎng)絡(luò)參數(shù)往往無(wú)法滿足需求,導(dǎo)致性能瓶頸、連接超時(shí)甚至服務(wù)崩潰。本文基于真實(shí)案例分析,參數(shù)解讀、問(wèn)題診斷到優(yōu)化實(shí)踐,手把手教你如何調(diào)優(yōu)
    的頭像 發(fā)表于 05-29 09:21 ?964次閱讀

    RK3588核心板/開(kāi)發(fā)板RT-Linux系統(tǒng)實(shí)時(shí)性及硬件中斷延遲測(cè)試

    本文介紹瑞芯微RK3588芯片平臺(tái)RT-Linux系統(tǒng)實(shí)時(shí)性及硬件中斷延遲測(cè)試,基于觸覺(jué)智能RK3588核心板/開(kāi)發(fā)板演示。
    的頭像 發(fā)表于 11-28 18:57 ?677次閱讀
    <b class='flag-5'>RK3588</b><b class='flag-5'>核心</b>板/開(kāi)發(fā)板RT-<b class='flag-5'>Linux</b>系統(tǒng)實(shí)時(shí)性及硬件<b class='flag-5'>中斷</b>延遲測(cè)試

    RK3588 CPU?隔離:AB/非?AB?系統(tǒng)雙方案適配實(shí)戰(zhàn)

    方案 ,兩套方案代碼均完整可直接套用,核心差異僅在于 代碼集成路徑與函數(shù)調(diào)用時(shí)機(jī) ,且均支持通過(guò)vendor_storage動(dòng)態(tài)配置隔離核心,無(wú)需反復(fù)編譯固件,重啟即可生效。下文將從隔離原理、適用場(chǎng)景、雙方案實(shí)現(xiàn)、動(dòng)態(tài)配置、效果驗(yàn)證全維度展開(kāi),
    的頭像 發(fā)表于 02-09 07:12 ?227次閱讀
    <b class='flag-5'>RK3588</b> CPU?隔離:AB/非?AB?系統(tǒng)雙方案適配實(shí)戰(zhàn)