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. _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
