1. 程式人生 > >多佇列網絡卡介紹

多佇列網絡卡介紹

1)   簡介

多佇列網絡卡是指一個網絡卡上有多個佇列,核心會給每個佇列註冊一箇中斷號,具體可以在/proc/interrupts | grep {網絡卡} 檢視,其中第一列是中斷號,最後一列是網絡卡佇列資訊。CPU和中斷號有親和性,一般網絡卡中斷和一個CPU繫結,繫結關係可以在/proc/irq/{中斷號}/smp_affinity_list檢視。

2)   疑惑

網絡卡與記憶體資料傳輸有兩種方式,一種是DMA,一種是IRQ。DMA是指有個DMAC(DMA控制器)負責將網絡卡資料放到指定buffer上,然後CPU在空閒時去處理這部分資訊。IRQ是指網絡卡通過中斷提醒CPU可操作,然後CPU進行讀寫。

這裡我有疑問,網上有人說網絡卡上的佇列就是所謂的DMA的緩衝區,那麼就是說IRQ和DMA是同時應用在網絡卡上的。但我又看到一種說法是, DMA是不需要中斷的,一般是CPU有空就去處理。具體是哪種我也不清楚。

在測試時,通過查詢CPU處理中斷的次數,可以發現中斷次數和發包數不一致,所以應該是一次中斷處理了多個包。