Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tcp: Recover from iob shortage with TCP_WRITE_BUFFERS
When CONFIG_NET_TCP_WRITE_BUFFERS is enabled, iobs are used for both queuing data from application, and for assembling packets for sending. If there is a system-wide shortage of iobs, it could happen that there is not enough free space to form any packets to send. The buffers allocated for TCP data also can't be released until the packet is sent. Normally this should be avoided by setting suitable values for CONFIG_IOB_NBUFFERS and CONFIG_IOB_THROTTLE. The default values are ok for light usage, but can run out when using multiple simultaneous TCP streams. Before this commit, iob shortage would cause TCP connections to get stuck and eventually timeout. With this change, TCP stack sends smaller packets, eventually freeing some buffers from the write queue.
- Loading branch information