Hi,
On the subject of improving network stack performance, I observe 50% less throughput on Genode+Fiasco.OC+LWIP versus Linux on exactly the same Intel-based hardware. I am sending UDP packets; Linux @ 324K PPS and Genode @ 167 KPPS. Using 64bit kernels. This is using out-of-the-box Genode IPXE DDE with E1000 NIC card.
Does this performance difference sound reasonable and expected? Is there some expected significant performance overhead with using DDE as opposed to a native NIC driver?
My next step will be to look at raw ethernet packet performance.
Daniel
Hi Daniel,
On 01/10/2013 11:57 PM, Daniel Waddington wrote:
On the subject of improving network stack performance, I observe 50% less throughput on Genode+Fiasco.OC+LWIP versus Linux on exactly the same Intel-based hardware. I am sending UDP packets; Linux @ 324K PPS and Genode @ 167 KPPS. Using 64bit kernels. This is using out-of-the-box Genode IPXE DDE with E1000 NIC card.
Does this performance difference sound reasonable and expected? Is there some expected significant performance overhead with using DDE as opposed to a native NIC driver?
The drop may be reasonable, since we haven't optimized the IPXE driver yet. LWIP also has a performance impact compared to the native Linux TCP/IP stack, we already had a look at that, but couldn't get many insights.
My next step will be to look at raw ethernet packet performance.
That's a got idea. Maybe you could simply drop the UDP packets at the ethernet driver and raise some statistics on the throughput. For performance optimizations you might have a look at http://genode.org/documentation/articles/pandaboard especially under the section 'Networking'. There we describe how we optimized the NIC for the Pandaboard and got it to about 90% of the Linux performance.
Regards,
Sebastian