谁能解释一下如何使用以下两种技术来减轻高网络负载下的中断开销?
我希望能解释更接近 linux 内核源代码级别的差异的答案?我也想听听如何在负载为 ~ 400Mbps 时强制 NIC 进入轮询/中断合并模式。
更多背景:
问题似乎是 bnx2 和 e1000 驱动程序忽略了“ethtool -Cadaptive-rx on”命令。这可能是因为这些驱动程序不支持自适应中断。尽管 Broadcom Programmer 的参考手册说 BCM5709 NIC 硬件应该支持此功能。
所以我决定尝试 NAPI 并在 netif_napi_add() 函数调用中将权重从 64 减少到 16,以在低得多的负载下强制 NIC 处于轮询模式,但不幸的是,这并没有奏效。我猜 NAPI 在 NIC 中不需要任何特殊的硬件支持,对吗?
我使用的硬件是 BCM5709 NIC(它使用 bnx2 驱动程序)。操作系统是 Ubuntu 10.04。CPU是至强5620。