[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lwip-users] lwIP malloc fail
From: |
Kieran Mansley |
Subject: |
Re: [lwip-users] lwIP malloc fail |
Date: |
Wed, 7 Apr 2010 16:58:07 +0100 |
On 6 Apr 2010, at 16:38, Navcon - Pedro Paulo Santos wrote:
> Hi all!
>
> I'm having a problem in trying to make a system with lwIP that sends a large
> file with TCP from an external serial Flash memory.
>
> I use the following logic: read certain amont of data from the external
> memory, send over TCP with tcp_write (), read more data, send again, and
> there goes on. I made a function to handle lack of memory because of Nagle's
> algoritm (because I have little memory and can't prepare a large TCP
> message), and use tcp_output () to force the send of the amont of data. The
> problem is that after some transfers (no more than 15 tcp transfers) the
> program doesn't find memory to alloc in the following lines of tcp_enqueue ()
> function:
TCP won't free the segments until it has finished with them, which means
waiting for an ACK from the other end. This could take some time.
You should be able to disable Nagle's algorithm, and so avoid having to work
around it, by setting the NODELAY flag on the PCB.
If you can address the memory in your flash directly then the most efficient
way to deal with this would be to use a PBUF_ROM type pbuf, which will just
reference the flash directly and avoiding having to copy the data into a
separate buffer.
If that's not an option then you will need to do as you are and wait for
buffers to be freed when ACKs arrive. To get ACKs more quickly I would suggest
using a small TCP_MSS value. If you don't have much memory you're never going
to get high performance, so the tradeoff in this case is probably worth it.
Kieran
- [lwip-users] lwIP malloc fail, Navcon - Pedro Paulo Santos, 2010/04/06
- Re: [lwip-users] lwIP malloc fail,
Kieran Mansley <=
- Re: [lwip-users] lwIP malloc fail, Navcon - Pedro Paulo Santos, 2010/04/07
- RE: [lwip-users] lwIP malloc fail, Bill Auerbach, 2010/04/07
- Re: [lwip-users] lwIP malloc fail, Kieran Mansley, 2010/04/07
- Re: [lwip-users] lwIP malloc fail, Navcon - Pedro Paulo Santos, 2010/04/13
- Re: [lwip-users] lwIP malloc fail, Simon Goldschmidt, 2010/04/14
- Re: [lwip-users] lwIP malloc fail, Navcon - Pedro Paulo Santos, 2010/04/14