Hat ein wenig Nerven gekostet und der Artikel ist auch was länger geworden 🙂 Viel Spaß beim Lesen und testen!
ROCKPro64 - LAN Schnittstelle
-
Wie vielleicht einige von Euch wissen, gibt es schon seit längerem einige Probleme mit der LAN-Schnittstelle. Eines dieser Probleme bezog sich wohl auf ipv6, kann ich hier nicht testen, aber nun scheint es eine Lösung dafür zu geben. Gestern folgendes im IRC
08/03/19 17:50
<ayufan> maybe instead of disabling tx checksuming we should lower mtu to 1498?
08/03/19 17:51
<ayufan> it should give you full gbe performance, something that is not happening now
08/03/19 18:00
<ayufan> forcing mtu of 1498 allows to have gbe performance and lower cpu usage
08/03/19 18:39
<FrankM> When i understand you correct, diabling tx checksuming helps? Ok, testing. Now i have 944/928Mbit/s before 941/825Mbit/s.
08/03/19 18:48
<FrankM> on mainline 5.0.0 i got 941/941
08/03/19 19:12
<ayufan> Not on ipv6
08/03/19 19:40
<ayufan> rockpro64 has the same behavior as rock64, it fails on checksum offload on tx
08/03/19 19:40
<ayufan> if you disable tx offload, you get around 800Mbps on rock/pro64
08/03/19 19:40
<ayufan> it works super stable
08/03/19 19:40
<ayufan> if you keep tx offload, you need mtu 1498, and you get 941Mbps on bothWir hatten in der Anfangszeit des ROCKPro64 immer 941/941 Mbit/s auf der Leitung, nach diesem Patch war das dann vorbei. Grund dafür waren damals irgendwelche Probleme. Danach hatten wir dann immer das hier.
Ich habe dann gestern Abend ein wenig rumgetestet.
Man kann den Eintrag im dts File per Hand ändern.
sudo dtedit
Dann STRG + W drücken. dma_mode eingeben.
Wir finden diese Zeile
snps,force_thresh_dma_mode;
Ändern in
#snps,force_thresh_dma_mode;
STRG + X
Neustarten!
MTU temporär ändern
An der uart-Konsole folgendes eingeben
ifconfig eth0 down ifconfig eth0 mtu 1498 ifconfig eth0 up
Das kann man mit netstat überprüfen
rock64@rockpro64:/mnt$ netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 1469569 0 0 0 242306 0 0 0 BMRU lo 65536 12 0 0 0 12 0 0 0 LRU
Da der Kamil ja auch ehrgeizig ist, hat ihm das gestern Abend wohl keine Ruhe gelassen Es gibt nun einen neuen Kernel mit einem entsprechenden Patch.
- snps,force_thresh_dma_mode; + rockchip,bugged_tx_coe;
Und
/* Including very small MTUs of 1498 for Rockchip devices */ if (priv->plat->bugged_tx_coe && (dev->mtu > ETH_DATA_LEN - 2)) features &= ~NETIF_F_CSUM_MASK;
Also, noch was dazu gekommen. Und hier dann das Ergebnis für
Kernel 5.0.0
rock64@rockpro64:~$ iperf3 -c 192.168.3.213 Connecting to host 192.168.3.213, port 5201 [ 4] local 192.168.3.14 port 33896 connected to 192.168.3.213 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 114 MBytes 952 Mbits/sec 0 363 KBytes [ 4] 1.00-2.00 sec 112 MBytes 941 Mbits/sec 11 313 KBytes [ 4] 2.00-3.00 sec 112 MBytes 942 Mbits/sec 10 293 KBytes [ 4] 3.00-4.00 sec 112 MBytes 941 Mbits/sec 11 293 KBytes [ 4] 4.00-5.00 sec 112 MBytes 941 Mbits/sec 11 235 KBytes [ 4] 5.00-6.00 sec 112 MBytes 941 Mbits/sec 0 328 KBytes [ 4] 6.00-7.00 sec 112 MBytes 941 Mbits/sec 11 322 KBytes [ 4] 7.00-8.00 sec 112 MBytes 941 Mbits/sec 11 321 KBytes [ 4] 8.00-9.00 sec 112 MBytes 941 Mbits/sec 11 325 KBytes [ 4] 9.00-10.00 sec 112 MBytes 941 Mbits/sec 11 332 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec 87 sender [ 4] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver iperf Done. rock64@rockpro64:~$ iperf3 -R -c 192.168.3.213 Connecting to host 192.168.3.213, port 5201 Reverse mode, remote host 192.168.3.213 is sending [ 4] local 192.168.3.14 port 33900 connected to 192.168.3.213 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 111 MBytes 932 Mbits/sec [ 4] 1.00-2.00 sec 112 MBytes 937 Mbits/sec [ 4] 2.00-3.00 sec 112 MBytes 942 Mbits/sec [ 4] 3.00-4.00 sec 112 MBytes 941 Mbits/sec [ 4] 4.00-5.00 sec 112 MBytes 941 Mbits/sec [ 4] 5.00-6.00 sec 112 MBytes 942 Mbits/sec [ 4] 6.00-7.00 sec 112 MBytes 941 Mbits/sec [ 4] 7.00-8.00 sec 112 MBytes 942 Mbits/sec [ 4] 8.00-9.00 sec 112 MBytes 942 Mbits/sec [ 4] 9.00-10.00 sec 112 MBytes 941 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec receiver iperf Done. rock64@rockpro64:~$ netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 873482 0 0 0 842381 0 0 0 BMRU lo 65536 4 0 0 0 4 0 0 0 LRU rock64@rockpro64:~$ sudo mount /dev/nvme0p1 /mnt [sudo] password for rock64: mount: /mnt: special device /dev/nvme0p1 does not exist. rock64@rockpro64:~$ sudo mount /dev/nvme0n1 /mnt rock64@rockpro64:~$ cd /mnt rock64@rockpro64:/mnt$ ls lost+found ubuntu-18.04.2-desktop-amd64.iso rock64@rockpro64:/mnt$ sudo wget http://ftp.belnet.be/mirror/ubuntu.com/releases/bionic/ubuntu-18.04.2-desktop-amd64.iso --2019-03-09 08:43:31-- http://ftp.belnet.be/mirror/ubuntu.com/releases/bionic/ubuntu-18.04.2-desktop-amd64.iso Resolving ftp.belnet.be (ftp.belnet.be)... 193.190.67.98, 2001:6a8:3c80:2::21 Connecting to ftp.belnet.be (ftp.belnet.be)|193.190.67.98|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1996488704 (1.9G) [application/x-iso9660-image] Saving to: ‘ubuntu-18.04.2-desktop-amd64.iso.1’ ubuntu-18.04.2-desktop 100%[============================>] 1.86G 12.4MB/s in 2m 38s 2019-03-09 08:46:09 (12.1 MB/s) - ‘ubuntu-18.04.2-desktop-amd64.iso.1’ saved [1996488704/1996488704] rock64@rockpro64:/mnt$ netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 2343002 0 0 0 1099074 0 0 0 BMRU lo 65536 8 0 0 0 8 0 0 0 LRU
Kernel 4.4.167-1140
rock64@rockpro64:~$ iperf3 -c 192.168.3.213 Connecting to host 192.168.3.213, port 5201 [ 4] local 192.168.3.14 port 54640 connected to 192.168.3.213 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 116 MBytes 969 Mbits/sec 0 1.03 MBytes [ 4] 1.00-2.00 sec 112 MBytes 943 Mbits/sec 10 529 KBytes [ 4] 2.00-3.00 sec 112 MBytes 942 Mbits/sec 11 325 KBytes [ 4] 3.00-4.01 sec 112 MBytes 940 Mbits/sec 10 327 KBytes [ 4] 4.01-5.00 sec 112 MBytes 943 Mbits/sec 0 396 KBytes [ 4] 5.00-6.00 sec 112 MBytes 941 Mbits/sec 0 413 KBytes [ 4] 6.00-7.00 sec 111 MBytes 935 Mbits/sec 11 355 KBytes [ 4] 7.00-8.00 sec 113 MBytes 947 Mbits/sec 0 410 KBytes [ 4] 8.00-9.00 sec 112 MBytes 942 Mbits/sec 0 424 KBytes [ 4] 9.00-10.00 sec 112 MBytes 941 Mbits/sec 11 303 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec 53 sender [ 4] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver iperf Done. rock64@rockpro64:~$ iperf3 -R -c 192.168.3.213 Connecting to host 192.168.3.213, port 5201 Reverse mode, remote host 192.168.3.213 is sending [ 4] local 192.168.3.14 port 54644 connected to 192.168.3.213 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 111 MBytes 934 Mbits/sec [ 4] 1.00-2.00 sec 112 MBytes 941 Mbits/sec [ 4] 2.00-3.00 sec 112 MBytes 941 Mbits/sec [ 4] 3.00-4.00 sec 112 MBytes 941 Mbits/sec [ 4] 4.00-5.00 sec 112 MBytes 941 Mbits/sec [ 4] 5.00-6.00 sec 112 MBytes 941 Mbits/sec [ 4] 6.00-7.00 sec 112 MBytes 941 Mbits/sec [ 4] 7.00-8.00 sec 112 MBytes 941 Mbits/sec [ 4] 8.00-9.00 sec 112 MBytes 938 Mbits/sec [ 4] 9.00-10.00 sec 110 MBytes 922 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 1.09 GBytes 939 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec receiver iperf Done. rock64@rockpro64:~$ netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 871955 0 0 0 842891 0 0 0 BMRU lo 65536 84 0 0 0 84 0 0 0 LRU wlan0 1500 0 0 0 0 0 0 0 0 BMU rock64@rockpro64:~$ sudo wget http://ftp.belnet.be/mirror/ubuntu.com/releases/bionic/ubuntu-18.04.2-desktop-amd64.iso [sudo] password for rock64: --2019-03-09 09:52:08-- http://ftp.belnet.be/mirror/ubuntu.com/releases/bionic/ubuntu-18.04.2-desktop-amd64.iso Resolving ftp.belnet.be (ftp.belnet.be)... 193.190.67.98, 2001:6a8:3c80:2::21 Connecting to ftp.belnet.be (ftp.belnet.be)|193.190.67.98|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1996488704 (1.9G) [application/x-iso9660-image] Saving to: ‘ubuntu-18.04.2-desktop-amd64.iso.1’ ubuntu-18.04.2-desktop-amd64.iso 100%[=======================================================>] 1.86G 12.4MB/s in 3m 32s 2019-03-09 09:55:41 (8.97 MB/s) - ‘ubuntu-18.04.2-desktop-amd64.iso.1’ saved [1996488704/1996488704] rock64@rockpro64:~$ netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 2340948 0 0 0 1072892 0 0 0 BMRU lo 65536 88 0 0 0 88 0 0 0 LRU wlan0 1500 0 0 0 0 0 0 0 0 BMU rock64@rockpro64:~$
Fazit
Mein Download auf die SD-Karte stockt immer mal wieder (Kernel 4.4.x), wenn ich auf NVMe SSD schreiben kann (Kernel 5.0.0) geht das ohne Pausen. Die Retr im iperf3 -c 192.168.3.213 sehen nicht schön aus, aber ich habe keine Ahnung ob das irgendwie wichtig ist. Mal Kamil fragen...
Sieht so aus, als wenn man wieder ein Problem weniger hätte!?
-
ROCKPro64 - Projekt Wireguard Server
Verschoben ROCKPro64 -
-
-
Zwischenfazit April 2019
Angeheftet ROCKPro64 -
Mainline Kernel 4.20.x
Verschoben Images -
ROCKPro64 - Der Bootvorgang
Verschoben Hardware -
bionic-lxde-rockpro64
Verschoben Linux -