This is an automated email from the ASF dual-hosted git repository. xiaoxiang781216 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit a7e30d59d9ca0ddb8794a498a003e106f678e5fb Author: Daniel P. Carvalho <[email protected]> AuthorDate: Sat Oct 10 15:44:12 2026 -0300 arch/mips/pic32mz: document the size of the Ethernet RX ring. The RX ring has to absorb the burst that the TCP window allows. When it is too small at 100 Mbit/s, the hardware drops frames without a counter and the TCP throughput collapses. Say so in the help of PIC32MZ_ETH_NRXDESC. Assisted-by: Claude Code:claude-sonnet-5-5 Signed-off-by: Daniel P. Carvalho <[email protected]> --- arch/mips/src/pic32mz/Kconfig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/mips/src/pic32mz/Kconfig b/arch/mips/src/pic32mz/Kconfig index d32fe474f1d..bde9d829c7f 100644 --- a/arch/mips/src/pic32mz/Kconfig +++ b/arch/mips/src/pic32mz/Kconfig @@ -1262,6 +1262,15 @@ config PIC32MZ_ETH_NRXDESC ---help--- Configured number of Rx descriptors. Default: 4 + The ring must absorb the burst that the TCP window allows, which + is about (free IOBs - IOB_THROTTLE) * IOB_BUFSIZE / frame size + frames. At 100 Mbit/s the sender sends the window at line rate, + and a ring that is too small overruns in the hardware without any + counter; the TCP throughput then collapses to a few Mbit/s because + of retransmission timeouts. For example, 32 descriptors for 48 + IOBs of 1600 bytes with IOB_THROTTLE=16. The default of 4 only + suits small IOBs and windows (24 IOBs of 196 bytes). + config PIC32MZ_ETH_PRIORITY int "Interrupt priority" default 7
