日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核irq,linux-kernel – do_IRQ中的中断向量和irq映射

發布時間:2024/1/23 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核irq,linux-kernel – do_IRQ中的中断向量和irq映射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在使用

Linux 3.6.0的x86系統.對于某些實驗,我需要知道IRQ如何映射到矢量.我從很多書中學到說,向量0x0到0x20用于陷阱和異常,從向量0x20開始用于外部器件中斷.這也在源代碼Linux / arch / x86 / include / asm / irq_vectors.h中定義

unsigned int __irq_entry do_IRQ(struct pt_regs *regs)

{

struct pt_regs *old_regs = set_irq_regs(regs);

/* high bit used in ret_from_ code */

unsigned vector = ~regs->orig_ax;

unsigned irq;

...

irq = __this_cpu_read(vector_irq[vector]); // get the IRQ from the vector_irq

// print out the vector_irq

prink("cpu-ID:%d,vector: 0x%x - irq: %d",smp_processor_id(),vector,irq);

}

通過使用printk檢測代碼,我得到的vector-irq映射如下所示,我不知道為什么這是映射.我雖然映射應該是(irq 0x20 = vector),但似乎并非如此.

from: Linux/arch/x86/include/asm/irq_vector.h

* Vectors 0 ... 31 : system traps and exceptions - hardcoded events

* Vectors 32 ... 127 : device interrupts = 0x20 – 0x7F

但我的輸出是:

cpu-ID=0.Vector=0x56 (irq=58)

cpu-ID=0.Vector=0x66 (irq=59)

cpu-ID=0.Vector=0x76 (irq=60)

cpu-ID=0.Vector=0x86 (irq=61)

cpu-ID=0.Vector=0x96 (irq=62)

cpu-ID=0.Vector=0xa6 (irq=63)

cpu-ID=0.Vector=0xb6 (irq=64)

順便說一下,這些irq是我的10GB以太網卡,啟用了MSIX.誰能給我一些關于為什么這是映射的想法?制作這種映射的規則是什么?

謝謝.

威廉

總結

以上是生活随笔為你收集整理的linux内核irq,linux-kernel – do_IRQ中的中断向量和irq映射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。