Networking

網卡如何發送硬體中斷?

  • September 17, 2013

一些上下文。

幾週前,在沒有太多故障排除的情況下更換了一個盒子上的 NIC,以找到問題的明確解決方案。一位高級管理員與一位入門級管理員就硬體中斷和乙太網卡發生了小爭執。具體來說,它們是如何工作的。入門級管理員給出了一個模糊的答案,堅稱他是正確的,這件事在沒有真正結論的情況下結束了。

從理論上講,我知道硬體中斷是如何工作的,但是當 NIC 接收到資訊包時,它具體是如何工作的呢?硬體層面發生了什麼?如何正確診斷是否發生了物理損壞,以避免本質上相當於將零件扔到問題上?

從理論上講,我知道硬體中斷是如何工作的,但是當 NIC 接收到資訊包時,它具體是如何工作的呢?硬體層面發生了什麼?

當網卡收到資訊時,它會檢查是否滿足觸發硬體中斷的條件。這通常在 NIC 控制器上的韌體中完成。例如,如果接收中斷已經發送但尚未確認,則沒有理由發送另一個。

如果 NIC 決定發送中斷,實際機制取決於 NIC 介面及其配置方式。舊的方法是實際改變專用中斷線上的電壓。這將轉到中斷控制器,該控制器通常會斷言組合多個中斷的其他行。然後作業系統會詢問中斷控制器觸發了哪些中斷。

較新的方法是“消息信號中斷”(MSI),其中 NIC 基本上將特定字寫入特定地址,並導致由其他一些硬體(通常是匯流排控制器)生成中斷。這允許設備有更多的中斷,並且還可以將中斷定位到特定的處理器。

如何正確診斷是否發生了物理損壞,以避免本質上相當於將零件扔到問題上?

通常很難做到這一點,而且大多數人不太可能有足夠的經驗來診斷問題。硬體可能以不同的方式出現故障,而且通常很難判斷故障發生在鏈中的哪個位置。通常只更換最有可能發生故障的元件,看看問題是否消失,然後重複,效率會更高。如果有網卡硬體問題的證據,我會先嘗試更換網卡。

引用自:https://serverfault.com/questions/539437