我正在为多个英特尔网卡(英特尔 EXPI9402PT,基于 82571EB 芯片)使用驱动程序 e1000e。问题是当我尝试在多个接口上使用最大速度(1GB)时,每个接口的速度开始下降。
我在内核空间中有自己的驱动程序,旨在仅发送给定的数据包。它只是通过以下方式分配数据包:
skb = dev_alloc_skb(packet->len);
他们通过以下方式发送它们:
result = dev->hard_start_xmit(skb,dev);
每个接口都有自己的驱动程序实例。
对于一个接口,我得到:120435948 字节/秒。
对于两个接口,我得到:61080233 字节/秒和 60515294 字节/秒。
对于三个接口,我得到:28564020 字节/秒、27111184 字节/秒、27118907 字节/秒。
可能是什么原因?hard_start_xmit 函数是可重入的吗?