|
From: | Bill Auerbach |
Subject: | Re: [lwip-users] Automatic Rx DMA ring replenish |
Date: | Thu, 3 Nov 2011 08:24:35 -0400 |
Timmy, I haven’t benchmarked to be able to provide factual data,
but I’ve done a lot of optimization and tweaking of lwIP to improve
bandwidth and my study of pbufs and memory pools did not show the need for improvement
considering all of the other things required to handle a TCP connection. Pbuf_alloc
of PBUF_POOLS doesn’t use a lot of runtime when the alloc fits in one
pbuf, and memp_malloc and memp_free run only a few lines of simple C code to
complete. Pbuf_free also does very little on a single (unchained)
pbuf. You are in a position to test for the actual improvement. I would
be curious (and surprised) if the overall performance increases significantly,
or even noticeably. From my experience, there are several other areas to
improve that significantly increase performance. One of them I submitted
a patch for and is already included in lwIP and others are optimizing your
Ethernet port, improving inet_chksum and using zero-copy TX and RX. For
me optimizing memcpy (using assembly code and unrolled loops and indexed
addresses) helped a good bit as well. Bill From: address@hidden
[mailto:address@hidden On Behalf
Of address@hidden On
30 okt 2011 18:13 "Simon Goldschmidt" <address@hidden> wrote: "address@hidden"
<address@hidden> wrote: What
if I make the Rx DMA buffer descriptor ring large enough to hold all POOL
pbufs. At start-up all POOL pbufs are allocated and put in the Rx DMA ring.
|
[Prev in Thread] | Current Thread | [Next in Thread] |