lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [task #7040] Work on tcp_enqueue


From: Bill Auerbach
Subject: [lwip-devel] [task #7040] Work on tcp_enqueue
Date: Mon, 02 Feb 2009 18:12:58 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5

Follow-up Comment #12, task #7040 (project lwip):

> Bill, thanks for testing the patch!

No problem - I was looking into the code and thinking maybe I could give it a
shot. When I saw what it took you to do it I knew I was in over my head!

> What is the limiting factor for your performance?
> CPU? Network bandwidth? Bandwidth-delay product? DMA
> bandwidth/fragmentation?
> Do you have retransmissions?

CPU and CPU memory accesses (large blocks of outbound data, fairly slow
SDRAM, zero-copy RAW_API). We plan on doing a DMA-checksum FPGA addition and
until then, I'm trying to improve performance where that won't.  There is no
retransmission.  Every WireShark capture has been error-free.  That was when I
noticed the handful of not-MSS-sized packets for a 300+k transfer.

> Sending full-sized TCP segments only helps you if you are saturating
> the network link. It minimizes the protocol header overhead.

It's safe to say I am not saturating the link, but trying to. :) However, it
did slightly help performance to have full packets (measured as how many 300k
chunks of data can I send to the PC per second).

> If you are
> CPU-limited, it could well be more work. The pbuf chains will be
> slightly longer on average.

It is slightly longer to send data. Whether there is benefit to "remembering"
the last pbuf in the change I don't know.  I would think we would want to
maintain this because for sending small data chunk in tcp_write, the chain
could be quite large (100 or more in the list).

> Your 1% number is rather small. Did you measure a variance as well?

That's an average over several MB of data.  But it's a fair test because only
one change was made - the patch versus my calling tcp_write with MSS sized
chunks, except the last packet.  This includes an optimized assembly
inet_chksum as that is where there is a lot of gain.

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/task/?7040>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]