[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [lwip-users] Tunning TCP in Lwip
From: |
Goldschmidt Simon |
Subject: |
RE: [lwip-users] Tunning TCP in Lwip |
Date: |
Mon, 6 Nov 2006 09:32:05 +0100 |
Hi Frédéric,
> Do you see more "rules" to respect ? (I hope I don't have
> write silly things)
-1- For those who have to write a new ethernet driver (ethernetif.c) for a MAC
which does not support DMA copy: creating/checking the checksums for IP/UDP/TCP
can be done on-the-fly so you don't have to load the same data twice into the
processor. This speeded things up for me, but it's not that easy to implement
(and DMA copy might be faster anyway).
-2- When using the socket- (or callback-) interface, input data is copied from
the pbufs into the application buffer using single byte copies. Depending on
your platform, this can take much longer than copying with the width of your
data bus. I implemented this change in api_lib.c/netbuf_copy_partial() and
submitted a patch for this, but I don't think it's included in CVS for now (or
will be :). But it did boost my receive performance.
-3- Although you probably already have done this, I think it's worth to mention
again and again: The biggest performance boost (at least for me) came by
selecting the best lwip_standard_chksum() in inet.c. (Of course this is only
valid if you don't take option -1- as described above...)
Hope that helps,
Simon.