Enabling Orin Dev Kit Ethernet over PCIe
Hi,
Following Bringing up an Ethernet Interface over PCIe and using tvnet in order to check bulk transfer between Orin EP and PC RP, am getting very low speeds relative to theoretical for PCIe 4.0 x8 which is ~16GB/s or ~128Gb/s. Uplink and downlink depending on which side initiates transfer with iperf3 are only 259-481Mb/s.
iperf3 -c 192.168.2.1
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.04  sec   310 MBytes   259 Mbits/sec    0             sender
[  5]   0.00-10.04  sec   310 MBytes   259 Mbits/sec                  receiver
iperf3 -c 192.168.2.2
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   574 MBytes   481 Mbits/sec   86             sender
[  5]   0.00-10.01  sec   571 MBytes   479 Mbits/sec                  receiver
From some other posts 40Gb/s should be expected, since virtual Ethernet transfer is less efficient than direct DMA calls (~128Gb/s), but measured speeds are 100x smaller than that. From logs, RP.eth0.log (6.2 KB)
lists LnkSta: Speed 8GT/s Width x8 and EP.eth1.log (6.3 KB) lists LnkSta: Speed 2.5GT/s Width x1, which seems odd, but even with PCIe 4.0 x1 2GB/s should be 16Gb/s.
Does virtual Ethernet use DMA and does it require patching Orin EP kernel, or PC RP kernal or tvnet, for PCIe or Ethernet buffer sizes etc.?
Thanks.