Skip to content

ROCKPro64 - LAN Schnittstelle

Moved ROCKPro64
  • 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 both

    Wir 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.

    Bildschirmfoto vom 2019-03-09 10-08-41.png

    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!?