|
From: | address@hidden |
Subject: | Re: [lwip-users] lwIP hangs on transfers with many short packets |
Date: | Wed, 19 May 2010 19:26:28 +0200 |
User-agent: | Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 |
multiplex wrote:
Do you mean "tcp_enqueue: too long queue 89 (max 89)"? If so, just increase TCP_SND_QUEUELEN in your lwipopts.h. This is a limit on how many pbuf shall be allowed in the queue of unacknowledged segments per tcp pcb. Up to (and including) 1.3.2, lwIP created a new pbuf for each call to tcp_write. This results in queuelen being quite high when calling tcp_write (or the socket functions send/write) with many small chunks.This has been improved in CVS HEAD already.Hi all, We're having a problem that stumps us. Using lwIP1.3.0 (Xilinx Microblaze port), we are using lWIP to support a telnet CLI connection. As long as we don't have a lot to print, no problem; once we print a lot of data typically, this can be even packets containing 1 byte of payload, lwIP hangs (typically, after 30-40 packets). With larger chuncks, it just takes longer. We are using socket mode, all threads are running at the same priority. With the debugging turned on, we see that the cause appears to be inside tcp_enqueue which keeps going around in circles trying to allocate/deallocate something but hitting a boundary.
Simon
[Prev in Thread] | Current Thread | [Next in Thread] |