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



Diese Artikel könnten Dich auch interessieren.

  • 5
  • 1
  • 2
  • 1
  • 1
  • 1
  • 1
  • 3