我正試着在嵌入式linux環境下測試NAPI的功能。我使用'pktgen'來生成大量數據包,並試圖驗證我的網絡接口的中斷計數是/proc/interrupts。如何測試linux NAPI功能?
我發現中斷計數比生成的數據包少。 另外我試圖調整'netdev_budget'值從1到1000(默認值是300),這樣我可以觀察netdev_budget增加時中斷計數的減少。
但是增加netdev_budget似乎沒有幫助。中斷類似於與netdev_budget觀察中斷計數設置爲300
因此,這裏有我的疑問:
什麼是「netdev_budget」對NAPI的影響?
我可以/應該調整哪些其他參數以觀察中斷計數的更改?
有沒有其他辦法,我可以用它來測試Linux上的NAPI功能?(除了直接看網絡驅動程序代碼)
任何幫助深表appreaciated。
在此先感謝。
測試「腐爛的小包」。在從napi輪詢返回到中斷模式的過渡期間,幀的到達可能未被檢測到。直到另一幀到達觸發接收中斷時纔會處理該幀。 – sawdust
嗨@sawdust謝謝你的提示。但是,您能否詳細說明您的答案?因爲我沒有看到任何丟棄的數據包,除非我增加數據包/幀的大小。那麼,我應該怎麼做才能檢查是否有「腐爛的數據包」? – sunisiha
腐爛的數據包不是丟棄的數據包。這是一個延遲的數據包。爲了容易地注意到這樣的錯誤,你必須有定時數據包,例如期望在X秒內做出響應,並且鏈接在活動突發和非活動時段之間變化。產生問題的環境涉及10條指令的時間窗口。但墨菲法則佔上風。創建環境可能很難,這部分解釋了爲什麼司機會因爲這個bug而被釋放。 – sawdust