daniel-p-carvalho opened a new pull request, #20575:
URL: https://github.com/apache/nuttx/pull/20575

   ## Summary
   
   `wlan_transmit()` copied the packet to a library buffer and released the 
network packet at once, so the TX quota of the network device never limited 
anything. When the application sent faster than the radio, the library queue 
grew until the packet pool and then the whole heap were exhausted (106 KB of 
108 KB in use with UDP from the board to a station).
   
   Keep the network packet until the library frees the buffer 
(`DRV_PIC32MZW_MemFree`) and signal the TX done event from there. The TX quota 
now bounds the frames in flight; it is raised from 4 to 16 to keep the radio 
fed.
   
   ## Impact
   
   PIC32MZ-W1 Wi-Fi driver only (`arch/mips/src/pic32mz/pic32mz_w1_wlan.c`). No 
API, Kconfig or documentation change. Throughput is unchanged; heap use under 
load drops.
   
   ## Testing
   
   EV49N51A (PIC32MZ-W1), `ev49n51a:wlan` built with XC32 v6.00, Soft-AP, UDP 
from the board to a station (`iperf -c <station> -u`):
   
   - heap peak 106 KB -> 46-51 KB
   - throughput unchanged (22.6 Mbit/s)
   - 3 station reassociations under load: no leak, IOB 48/48, queued == sent, 0 
TX errors
   
   `tools/checkpatch.sh -g upstream/master..HEAD` passes.
   


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