Port-arm archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: genet0 speeds under NetBSD/aarch64 on Rpi4 8 GB using UEFI/ACPI v1.17 firmware
On 7/24/20 6:53 AM, Jared McNeill
wrote:
On
Thu, 23 Jul 2020, Paul Mather wrote:
Thanks for the tips. I was hoping I
would be able to achieve GbE max speeds without any special
tuning. That is what seemed to happen under Raspberry Pi OS.
As someone observed elsewhere in this thread, it's likely the
driver in Raspberry Pi OS is implementing hardware offloading
and other things that improve throughput.
Hi Paul --
Author of the driver here. A few things about the driver
that could explain the performance differences you are seeing:
- No support for polled operation, so we have to deal
with the overhead
of an IRQ per packet.
- The hardware supports multiple TX and RX queues, but
the driver
currently only uses one for each.
- NET_MPSAFE option is disabled by default in the
kernel, so we can't
take advantage of multiple CPUs. Even with this option
on, the single
queue limitation above will be a bottleneck.
- As others have mentioned already in this thread, no
support for
checksum offload.
Take care,
Jared
With a current (Aug 15) kernel running NET_MPSAFE, I can
consistently get 700Mbit sending from an RPi4 to my Macbook and
550Mbit sending to a wm interface on a RockPro64.
Adding multiple streams doesn't increase these numbers.
Strangely enough running the iPerf3 server on the RPi gets
<50Mbit, with high variance. I'm guessing this is due to the
fact the NET_MPSAFE is still being tested, but I could be wrong.
--
Thanks,
Jason M.
P.S. Just as an FYI,
--get-server-output allows you to run the test without -R and
get the server's statistics at the end.
RPI4# iperf3 -w 800k -c MacBook-t 5
Connecting to host MacBook, port 5201
[ 5] local RPi4 port 65481 connected to MacBook port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.01 sec 83.8 MBytes 696 Mbits/sec 0 1024
KBytes
[ 5] 1.01-2.01 sec 83.8 MBytes 701 Mbits/sec 0 1024
KBytes
[ 5] 2.01-3.00 sec 82.5 MBytes 697 Mbits/sec 0 1024
KBytes
[ 5] 3.00-4.01 sec 83.8 MBytes 699 Mbits/sec 0 1024
KBytes
[ 5] 4.01-5.01 sec 83.8 MBytes 699 Mbits/sec 0 1024
KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-5.01 sec 418 MBytes 699 Mbits/sec
0 sender
[ 5] 0.00-5.01 sec 417 MBytes 699
Mbits/sec receiver
iperf Done.
<Server Side>
-----------------------------------------------------------
Accepted connection from RPI4, port 65482
[ 5] local MacBook port 5201 connected to RPI4 port 65481
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 5.71 MBytes 47.9 Mbits/sec
[ 5] 1.00-2.00 sec 83.2 MBytes 698 Mbits/sec
[ 5] 2.00-3.00 sec 83.5 MBytes 701 Mbits/sec
[ 5] 3.00-4.00 sec 83.2 MBytes 698 Mbits/sec
[ 5] 4.00-5.00 sec 83.3 MBytes 699 Mbits/sec
[ 5] 5.00-5.94 sec 78.5 MBytes 699 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-5.94 sec 0.00 Bytes 0.00
bits/sec sender
[ 5] 0.00-5.94 sec 417 MBytes 589
Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
RPI4# iperf3 -w 800k -c RockPro64-wm0
-t 10
Connecting to host RockPro64-wm0, port 5201
[ 5] local RPi4 port 65477 connected to RockPro64-wm0 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 54.2 MBytes 453 Mbits/sec 0 2.00
MBytes
[ 5] 1.00-2.00 sec 66.4 MBytes 557 Mbits/sec 0 2.00
MBytes
[ 5] 2.00-3.00 sec 66.4 MBytes 557 Mbits/sec 0 2.00
MBytes
[ 5] 3.00-4.01 sec 66.5 MBytes 557 Mbits/sec 0 2.00
MBytes
[ 5] 4.01-5.00 sec 66.1 MBytes 558 Mbits/sec 0 2.00
MBytes
[ 5] 5.00-6.00 sec 66.6 MBytes 557 Mbits/sec 0 2.00
MBytes
[ 5] 6.00-7.00 sec 66.4 MBytes 557 Mbits/sec 0 2.00
MBytes
[ 5] 7.00-8.01 sec 66.5 MBytes 557 Mbits/sec 0 2.00
MBytes
[ 5] 8.01-9.00 sec 65.5 MBytes 550 Mbits/sec 0 2.00
MBytes
[ 5] 9.00-10.00 sec 66.2 MBytes 557 Mbits/sec 0 2.00
MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 651 MBytes 546 Mbits/sec
0 sender
[ 5] 0.00-10.00 sec 650 MBytes 545
Mbits/sec receiver
iperf Done.
<server side>
-----------------------------------------------------------
Accepted connection from RPI4, port 65497
[ 5] local MacBook port 5201 connected to RPI4 port
65496
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 5.43 MBytes 45.6 Mbits/sec
[ 5] 1.00-2.00 sec 84.3 MBytes 707 Mbits/sec
[ 5] 2.00-3.00 sec 84.4 MBytes 708 Mbits/sec
[ 5] 3.00-4.00 sec 83.6 MBytes 701 Mbits/sec
[ 5] 4.00-5.00 sec 84.2 MBytes 706 Mbits/sec
[ 5] 5.00-6.00 sec 84.2 MBytes 707 Mbits/sec
[ 5] 6.00-7.00 sec 84.3 MBytes 707 Mbits/sec
[ 5] 7.00-8.00 sec 84.3 MBytes 707 Mbits/sec
[ 5] 8.00-9.00 sec 84.2 MBytes 707 Mbits/sec
[ 5] 9.00-10.00 sec 84.3 MBytes 707 Mbits/sec
[ 5] 10.00-10.95 sec 79.1 MBytes 702 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.95 sec 0.00 Bytes 0.00
bits/sec sender
[ 5] 0.00-10.95 sec 842 MBytes 646
Mbits/sec receiver
Home |
Main Index |
Thread Index |
Old Index