Same driver for multiple network cards - performance bottleneck?

I am using the e1000e driver for several Intel network cards (Intel EXPI9402PT, based on 82571EB chip). The problem is that when I try to use the maximum speed (1 GB) on several interfaces, the speed on each interface starts to decrease.

I have my own driver in kernel space, designed only to send packet data. It simply distributes packages by:

skb = dev_alloc_skb(packet->len);

and they send them by:

result = dev->hard_start_xmit(skb,dev);

Each interface has its own driver instance.

For one interface, I get: 120435948 bytes / s.

For two interfaces I get: 61080233 bytes / sec and 60515294 bytes / sec.

For three interfaces I get: 28564020 bytes / sec, 27111184 bytes / sec, 27118907 bytes / sec.

? hard_start_xmit ?

+3
2

, , .

3 / 3 /, . ?

, , , .

+3

2 , , . , . , , . , , , , , , 121 /. (3 ) , 82 /.

- ,

  • : .
  • : , x4 x8, ( , SKB live), , .
  • : , . , , , , .
0

Source: https://habr.com/ru/post/1710749/


All Articles