fdcavalcanti commented on PR #18011:
URL: https://github.com/apache/nuttx/pull/18011#issuecomment-3804941630

   Hi @zhhyu7 this is excellent input, thanks!
   I can confirm IPERF is working blazing fast with your recommendations, but 
there are some issues:
   
   I tried `CONFIG_NET_SEND_BUFSIZE` of 12000 (your recommendation) and also 
20000 which is the value I got from the equation you showed.
   
   Here's my base IOB config:
   ```
   CONFIG_IOB_BUFSIZE=400
   CONFIG_IOB_NBUFFERS=100
   CONFIG_IOB_NCHAINS=32
   CONFIG_IOB_THROTTLE=40
   ```
   
   - `CONFIG_NET_SEND_BUFSIZE=20000`
   It did not transmit properly and seems we have lost some buffers after IPERF 
finished.
   ```
   nsh> iperf -c 192.168.0.125 -i 3 -t 20 &
   iperf [12:100]
   nsh>      IP: 192.168.0.85
   
    mode=tcp-client sip=192.168.0.85:5001,dip=192.168.0.125:5001, interval=3, 
time=20
   
              Interval         Transfer         Bandwidth
   
      0.00-   3.01 sec     131072 Bytes    0.35 Mbits/sec
      3.01-   6.02 sec          0 Bytes    0.00 Mbits/sec
      6.02-   9.03 sec          0 Bytes    0.00 Mbits/sec
      9.03-  12.04 sec          0 Bytes    0.00 Mbits/sec
     12.04-  15.05 sec          0 Bytes    0.00 Mbits/sec
     15.05-  18.06 sec          0 Bytes    0.00 Mbits/sec
     18.06-  21.07 sec          0 Bytes    0.00 Mbits/sec
      0.00-  21.07 sec     131072 Bytes    0.05 Mbits/sec
   
   nsh> cat /proc/iobinfo
       ntotal     nfree     nwait nthrottle
          100        41         0         1
   ```
   
   - `CONFIG_NET_SEND_BUFSIZE=12000`
   It starts very slow then picks up speed. If I call IPERF again (without 
rebooting the board) it runs fine. You can see below that after the first run, 
some IOBs are "lost" but after the second run, there are no changes. I imagine 
those lost buffers are related to the slow start of the first IPERF run.
   
   I then rebooted the board and tried again. It had the same results regarding 
throughput but did not lose any IOB. Here's the log of the first run:
   
   ```
   nsh> iperf -c 192.168.0.125 -i 3 -t 20 &
   iperf [12:100]
   nsh>      IP: 192.168.0.85
   
    mode=tcp-client sip=192.168.0.85:5001,dip=192.168.0.125:5001, interval=3, 
time=20
   
              Interval         Transfer         Bandwidth
   
      0.00-   3.01 sec     114688 Bytes    0.30 Mbits/sec
      3.01-   6.02 sec          0 Bytes    0.00 Mbits/sec
      6.02-   9.03 sec    4063232 Bytes   10.80 Mbits/sec
      9.03-  12.04 sec    4276224 Bytes   11.37 Mbits/sec
     12.04-  15.05 sec    4259840 Bytes   11.32 Mbits/sec
     15.05-  18.06 sec    4210688 Bytes   11.19 Mbits/sec
     18.06-  21.07 sec    4259840 Bytes   11.32 Mbits/sec
      0.00-  21.07 sec   21184512 Bytes    8.04 Mbits/sec
   iperf exit
   
   nsh> cat /proc/iobinfo
       ntotal     nfree     nwait nthrottle
          100        98         0        58
   nsh> 
   nsh> 
   nsh> iperf -c 192.168.0.125 -i 3 -t 20 &
   iperf [15:100]
   nsh>      IP: 192.168.0.85
   
    mode=tcp-client sip=192.168.0.85:5001,dip=192.168.0.125:5001, interval=3, 
time=20
   
              Interval         Transfer         Bandwidth
   
      0.00-   3.01 sec    4128768 Bytes   10.97 Mbits/sec
      3.01-   6.02 sec    4210688 Bytes   11.19 Mbits/sec
      6.02-   9.03 sec    4292608 Bytes   11.41 Mbits/sec
      9.03-  12.04 sec    4407296 Bytes   11.71 Mbits/sec
     12.04-  15.05 sec    4194304 Bytes   11.15 Mbits/sec
     15.05-  18.06 sec    4243456 Bytes   11.28 Mbits/sec
     18.06-  21.07 sec    4341760 Bytes   11.54 Mbits/sec
      0.00-  21.07 sec   29818880 Bytes   11.32 Mbits/sec
   iperf exit
   cat /proc/iobinfo
       ntotal     nfree     nwait nthrottle
          100        98         0        58
   nsh> 
   ```
   
   After this, I kept it running for 5 minutes and it had very stable 
throughput (better then we ever had). Seems we are very near closure here.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to